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

20200603.53-034 days ago478 downloads
20200603.52-034 days ago275 downloads
20200603.51-034 days ago10,008 downloads
20190813.53-0334 days ago3,589 downloads
20190813.52-0334 days ago1,802 downloads
20190813.51-0334 days ago70,858 downloads
20190731.53-0347 days ago238 downloads
20190731.52-0347 days ago78 downloads
20190731.51-0347 days ago3,808 downloads
20171014.53-02 years ago5,467 downloads
20171014.52-02 years ago2,075 downloads
20171014.51-02 years ago60,686 downloads
20161215.53-03 years ago1,445 downloads
20161215.52-03 years ago955 downloads
20161215.51-03 years ago2,947 downloads
20161214.53-03 years ago77 downloads
20161214.52-03 years ago61 downloads
20161214.51-03 years ago235 downloads
20161018.53-03 years ago345 downloads
20161018.52-03 years ago276 downloads
20161018.51-03 years ago1,090 downloads
20160812.53-13 years ago59 downloads
20160812.53-03 years ago(revision: 2)195 downloads
20160812.52-13 years ago71 downloads
20160812.52-03 years ago(revision: 2)263 downloads
20160812.51-13 years ago113 downloads
20160812.51-03 years ago(revision: 2)618 downloads
20160808.53-03 years ago(revision: 2)24 downloads
20160808.52-03 years ago(revision: 2)22 downloads
20160808.51-03 years ago(revision: 2)31 downloads
20160316.53-04 years ago496 downloads
20160316.52-04 years ago468 downloads
20160316.51-04 years ago1,499 downloads
20150907.53-04 years ago326 downloads
20150907.52-04 years ago361 downloads
20150907.51-04 years ago1,145 downloads
20150119.53-14 years ago(revision: 2)29 downloads
20150119.53-05 years ago10 downloads
20150119.52-14 years ago31 downloads
20150119.52-05 years ago181 downloads
20150119.51-14 years ago(revision: 2)81 downloads
20150119.51-05 years ago135 downloads
scm-53dev3 years ago(revision: 5)107 downloads
scm-52dev3 years ago(revision: 6)3 downloads
scm-51dev3 years ago(revision: 5)21 downloads

Dependencies

lua == 5.3

Dependency for

circle, cqueues-pgsql, daemonparts, http, l, lacord, lredis, lua-irc, prosody, prosody, quest, telegram, wch, web-driver, xcq-subprocess

Labels

Manifests