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

20161215.53-0219 days ago1,035 downloads
20161215.52-0219 days ago685 downloads
20161215.51-0219 days ago2,227 downloads
20161214.53-0220 days ago59 downloads
20161214.52-0220 days ago44 downloads
20161214.51-0220 days ago187 downloads
20161018.53-0276 days ago328 downloads
20161018.52-0276 days ago259 downloads
20161018.51-0276 days ago1,072 downloads
20160812.53-1282 days ago42 downloads
20160812.53-0337 days ago179 downloads
20160812.52-1281 days ago56 downloads
20160812.52-0337 days ago248 downloads
20160812.51-1281 days ago93 downloads
20160812.51-0337 days ago601 downloads
20160808.53-0337 days ago8 downloads
20160808.52-0337 days ago7 downloads
20160808.51-0337 days ago11 downloads
20160316.53-01 year ago479 downloads
20160316.52-01 year ago451 downloads
20160316.51-01 year ago1,477 downloads
20150907.53-01 year ago309 downloads
20150907.52-01 year ago343 downloads
20150907.51-01 year ago1,128 downloads
20150119.53-12 years ago13 downloads
20150119.53-02 years ago8 downloads
20150119.52-12 years ago14 downloads
20150119.52-02 years ago116 downloads
20150119.51-12 years ago62 downloads
20150119.51-02 years ago82 downloads
scm-53dev2 years ago1 download
scm-52dev2 years ago0 downloads
scm-51dev2 years ago0 downloads

Dependencies

lua == 5.3

Dependency for

cqueues-pgsql, http, l, lredis, prosody

Labels

Manifests