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-0286 days ago1,469 downloads
20200726.53-0286 days ago3,781 downloads
20200726.52-0286 days ago1,965 downloads
20200726.51-0286 days ago69,956 downloads
20200603.53-0334 days ago624 downloads
20200603.52-0334 days ago347 downloads
20200603.51-0334 days ago14,082 downloads
20190813.53-01 year ago3,596 downloads
20190813.52-01 year ago1,817 downloads
20190813.51-01 year ago70,956 downloads
20190731.53-01 year ago244 downloads
20190731.52-01 year ago1,328 downloads
20190731.51-01 year ago3,812 downloads
20171014.53-03 years ago5,475 downloads
20171014.52-03 years ago2,079 downloads
20171014.51-03 years ago60,750 downloads
20161215.53-04 years ago1,452 downloads
20161215.52-04 years ago959 downloads
20161215.51-04 years ago2,953 downloads
20161214.53-04 years ago84 downloads
20161214.52-04 years ago65 downloads
20161214.51-04 years ago239 downloads
20161018.53-04 years ago351 downloads
20161018.52-04 years ago280 downloads
20161018.51-04 years ago1,094 downloads
20160812.53-14 years ago66 downloads
20160812.53-04 years ago(revision: 2)202 downloads
20160812.52-14 years ago75 downloads
20160812.52-04 years ago(revision: 2)267 downloads
20160812.51-14 years ago117 downloads
20160812.51-04 years ago(revision: 2)622 downloads
20160808.53-04 years ago(revision: 2)30 downloads
20160808.52-04 years ago(revision: 2)26 downloads
20160808.51-04 years ago(revision: 2)35 downloads
20160316.53-05 years ago503 downloads
20160316.52-05 years ago475 downloads
20160316.51-05 years ago1,503 downloads
20150907.53-05 years ago334 downloads
20150907.52-05 years ago365 downloads
20150907.51-05 years ago1,149 downloads
20150119.53-15 years ago(revision: 2)36 downloads
20150119.53-06 years ago15 downloads
20150119.52-15 years ago35 downloads
20150119.52-06 years ago197 downloads
20150119.51-15 years ago(revision: 2)85 downloads
20150119.51-06 years ago149 downloads
scm-54dev286 days ago5 downloads
scm-53dev4 years ago(revision: 5)130 downloads
scm-52dev4 years ago(revision: 6)11 downloads
scm-51dev4 years ago(revision: 5)25 downloads

Dependencies

lua == 5.4

Dependency for

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

Labels

Manifests