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-05 years ago42,796 downloads
20200726.53-05 years ago43,549 downloads
20200726.52-05 years ago52,284 downloads
20200726.51-05 years ago717,274 downloads
20200603.53-05 years ago662 downloads
20200603.52-05 years ago369 downloads
20200603.51-05 years ago14,124 downloads
20190813.53-06 years ago3,628 downloads
20190813.52-06 years ago1,847 downloads
20190813.51-06 years ago71,203 downloads
20190731.53-06 years ago270 downloads
20190731.52-06 years ago1,777 downloads
20190731.51-06 years ago3,844 downloads
20171014.53-08 years ago5,507 downloads
20171014.52-08 years ago2,105 downloads
20171014.51-08 years ago64,187 downloads
20161215.53-09 years ago1,478 downloads
20161215.52-09 years ago978 downloads
20161215.51-09 years ago3,006 downloads
20161214.53-09 years ago129 downloads
20161214.52-09 years ago88 downloads
20161214.51-09 years ago328 downloads
20161018.53-09 years ago374 downloads
20161018.52-09 years ago299 downloads
20161018.51-09 years ago1,125 downloads
20160812.53-19 years ago104 downloads
20160812.53-09 years ago(revision: 2)225 downloads
20160812.52-19 years ago94 downloads
20160812.52-09 years ago(revision: 2)286 downloads
20160812.51-19 years ago163 downloads
20160812.51-09 years ago(revision: 2)651 downloads
20160808.53-09 years ago(revision: 2)70 downloads
20160808.52-09 years ago(revision: 2)87 downloads
20160808.51-09 years ago(revision: 2)128 downloads
20160316.53-010 years ago526 downloads
20160316.52-010 years ago512 downloads
20160316.51-010 years ago1,532 downloads
20150907.53-010 years ago357 downloads
20150907.52-010 years ago384 downloads
20150907.51-010 years ago1,178 downloads
20150119.53-110 years ago(revision: 2)59 downloads
20150119.53-011 years ago35 downloads
20150119.52-110 years ago54 downloads
20150119.52-011 years ago274 downloads
20150119.51-110 years ago(revision: 2)118 downloads
20150119.51-011 years ago223 downloads
scm-54dev5 years ago90 downloads
scm-53dev9 years ago(revision: 5)199 downloads
scm-52dev9 years ago(revision: 6)33,369 downloads
scm-51dev9 years ago(revision: 5)179 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, t-mq-amqp, telegram, themoonlitknot, tulip, wch, web-driver, xcq-subprocess

Labels

Manifests