cqueues is a comprehensive event and networking library for Lua 5.2 and LuaJIT using modern Unix O(1) polling facilities. It includes libraries for buffered socket I/O, SSL/TLS sockets, DNS querying, signal handling, threading, file change notification, and X.509 key management. It natively supports Linux, *BSD, OS X, and Solaris systems without third-party dependencies, and is interoperable with any event loop that accepts plain descriptors, or is usable standalone.
delegate.c implements an abstract function pointer by capturing a user-specified callback signature -- delegate() -- and exposing it through a simple interface -- invoke(). It provides something loosely approximating lambda expressions; or even more analogous, C# delegates. It includes a wrapper to support libevent callbacks to functions not matching the required libevent callback signature.
dns.c is a recursive, re-entrant, non-blocking DNS resolver in a single .c file. It features a record-agnostic API, restartable record iterators, and smart queries which recursively follow out-of-bailiwick NS, MX, and SRV host references. It works just as well as a stub resolver, too. It also includes spf.c, a non-blocking SPF resolver with no threading, no forking, and no run-time dependencies.
libevnet provides a suite of interfaces useful in network applications. The API includes a buffered I/O interface, connect(2) and accept(2) analogues, a fully featured DNS lookup package, thread pools, and transparent OpenSSL integration. Using libevent as the poll-select-epoll-kqueue-/dev/poll event loop, all interfaces express the traditional Unix non-blocking I/O paradigm for the construction of high-performance applications.
libmime is a MIME parser in the same vein as Expat, the stream-oriented XML parser. As input is fed to the parser, events are generated which an application can catch by registering event handlers. Such events include the Unix From_ line, start of entity, end of entity, entity boundary, header, end of headers, and body. libmime supports MIME message editing through a delta mechanism. Edit contexts are instantiated and changes applied to specific contexts. Edit contexts can then be expressed in standard unified diff format which, when applied to the input source stream, will result in the new message.
libnostd is a compatibility library for common, non-standard BSD, GNU, and Win32 APIs. No additional compilation is required; it has header-based macro and static inline definitions. It includes transparent cross-platform support for arc4random(), arc4random_buf(), strlcpy(), strlcat(), err.h, sys/param.h, sys/queue.h, sys/tree.h, sys/time.h, stdatomic.h (ISO C1x proposal), strdupa(), strndupa(), and strnlen().
Re: bug report page? > Hi, I tried your lib and I found a > problem on linux at line 947 in > socket.c, there is no ap_strdup > anywhere in the lib or it's dependency &g...