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-02 years ago6,514 downloads
20200726.53-02 years ago12,600 downloads
20200726.52-02 years ago9,210 downloads
20200726.51-02 years ago243,603 downloads
20200603.53-02 years ago642 downloads
20200603.52-02 years ago350 downloads
20200603.51-02 years ago14,093 downloads
20190813.53-03 years ago3,609 downloads
20190813.52-03 years ago1,830 downloads
20190813.51-03 years ago71,122 downloads
20190731.53-03 years ago252 downloads
20190731.52-03 years ago1,756 downloads
20190731.51-03 years ago3,815 downloads
20171014.53-04 years ago5,482 downloads
20171014.52-04 years ago2,082 downloads
20171014.51-04 years ago60,759 downloads
20161215.53-05 years ago1,460 downloads
20161215.52-05 years ago961 downloads
20161215.51-05 years ago2,957 downloads
20161214.53-05 years ago90 downloads
20161214.52-05 years ago68 downloads
20161214.51-05 years ago248 downloads
20161018.53-05 years ago357 downloads
20161018.52-05 years ago282 downloads
20161018.51-05 years ago1,096 downloads
20160812.53-15 years ago74 downloads
20160812.53-06 years ago(revision: 2)208 downloads
20160812.52-15 years ago77 downloads
20160812.52-06 years ago(revision: 2)269 downloads
20160812.51-15 years ago120 downloads
20160812.51-06 years ago(revision: 2)624 downloads
20160808.53-06 years ago(revision: 2)38 downloads
20160808.52-06 years ago(revision: 2)32 downloads
20160808.51-06 years ago(revision: 2)41 downloads
20160316.53-06 years ago509 downloads
20160316.52-06 years ago479 downloads
20160316.51-06 years ago1,505 downloads
20150907.53-07 years ago340 downloads
20150907.52-07 years ago367 downloads
20150907.51-07 years ago1,151 downloads
20150119.53-17 years ago(revision: 2)42 downloads
20150119.53-07 years ago19 downloads
20150119.52-17 years ago37 downloads
20150119.52-07 years ago205 downloads
20150119.51-17 years ago(revision: 2)87 downloads
20150119.51-07 years ago155 downloads
scm-54dev2 years ago24 downloads
scm-53dev5 years ago(revision: 5)157 downloads
scm-52dev5 years ago(revision: 6)12,520 downloads
scm-51dev5 years ago(revision: 5)52 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, themoonlitknot, tulip, wch, web-driver, xcq-subprocess

Labels

Manifests