cqueues

Continuation Queues: Embeddable asynchronous networking, threading, and notification framework for Lua on Unix.

$ luarocks install cqueues

cqueues is a type of event loop for Lua, except it's not a classic event loop. It doesn't use callbacks—neither as part of the API nor internally—but instead you communicate with an event controller by the yielding and resumption of Lua coroutines using objects that adhere to a simple interface.

cqueues are also stackable. Each instantiated cqueue is a pollable object which can be polled from another cqueue, or another event loop system entirely. The design is meant to be unintrusive, composable, and embeddable within existing applications—such as Apache or Nginx—or used standalone. It maintains no global state and never blocks your thread of execution.

cqueues includes a sockets library with DNS, buffering, end-of-line translation, SSL/TLS, and descriptor passing support builtin. Domain querying, connection establishment, and SSL negotiation are handled transparently as part of a state machine entered with every I/O operation, so users can read and write immediately upon instantiating the object, as if opening a regular file.

cqueues also includes modules for handling signals, threads, and file change notifications using native kernel facilities—such as signalfd on Linux, or Solaris PORT_SOURCE_FILE for file events—and accessible through easy to use interfaces which abstract the different kernel facilities.

Additional modules include a light-weight user-defined event system using the condition variable pattern, and a comprehensive interface for DNS querying.

Versions

20200726.54-04 years ago30,321 downloads
20200726.53-04 years ago33,938 downloads
20200726.52-04 years ago43,590 downloads
20200726.51-04 years ago662,747 downloads
20200603.53-04 years ago659 downloads
20200603.52-04 years ago366 downloads
20200603.51-04 years ago14,119 downloads
20190813.53-05 years ago3,623 downloads
20190813.52-05 years ago1,844 downloads
20190813.51-05 years ago71,199 downloads
20190731.53-05 years ago267 downloads
20190731.52-05 years ago1,774 downloads
20190731.51-05 years ago3,841 downloads
20171014.53-07 years ago5,496 downloads
20171014.52-07 years ago2,098 downloads
20171014.51-07 years ago62,359 downloads
20161215.53-08 years ago1,475 downloads
20161215.52-08 years ago975 downloads
20161215.51-08 years ago2,989 downloads
20161214.53-08 years ago121 downloads
20161214.52-08 years ago83 downloads
20161214.51-08 years ago298 downloads
20161018.53-08 years ago371 downloads
20161018.52-08 years ago296 downloads
20161018.51-08 years ago1,121 downloads
20160812.53-18 years ago101 downloads
20160812.53-08 years ago(revision: 2)222 downloads
20160812.52-18 years ago91 downloads
20160812.52-08 years ago(revision: 2)283 downloads
20160812.51-18 years ago158 downloads
20160812.51-08 years ago(revision: 2)648 downloads
20160808.53-08 years ago(revision: 2)65 downloads
20160808.52-08 years ago(revision: 2)74 downloads
20160808.51-08 years ago(revision: 2)109 downloads
20160316.53-08 years ago523 downloads
20160316.52-08 years ago507 downloads
20160316.51-08 years ago1,529 downloads
20150907.53-09 years ago354 downloads
20150907.52-09 years ago381 downloads
20150907.51-09 years ago1,175 downloads
20150119.53-19 years ago(revision: 2)56 downloads
20150119.53-09 years ago33 downloads
20150119.52-19 years ago51 downloads
20150119.52-010 years ago262 downloads
20150119.51-19 years ago(revision: 2)115 downloads
20150119.51-010 years ago209 downloads
scm-54dev4 years ago50 downloads
scm-53dev8 years ago(revision: 5)168 downloads
scm-52dev8 years ago(revision: 6)20,029 downloads
scm-51dev8 years ago(revision: 5)144 downloads

Dependencies

lua == 5.4

Dependency for

circle, cqueues-pgsql, daemonparts, diskqueue, hectorm-fork-http, http, l, lacord, lredis, lua-irc, prosody, prosody, quest, redis-client, telegram, themoonlitknot, t-mq-amqp, tulip, wch, web-driver, xcq-subprocess

Labels

Manifests