The core of the SFS programming libraries. sfslite as many useful components for simplifying the development of event-driven network programs in C++.
sfslite and the SFS libraries are also known as libasync, which is somewhat of a misnomer, since the sfslite/SFS suite contain libasync in addition to other libraries.
amain and acheck) and mechanisms for registering callbacks to handle:fdcb,delaycb,sigcb.refcnt.h)wrap in callback.h)str.h): immutable strings, string buffers, mutable strings and mutable strings that are explicitly wiped after use.suio in C++, a wrapper to simplify using iovec to efficiently buffering input and output.aios for writing line-oriented network servers/clients.list.h)ihash for when you provide struct that knows it is in a hash table, qhash for generic structs into hash tables, bhash for when you just want to keep track of whether or not a key is present (ihash.h and qhash.h). A short tutorial on qhash is available here.vec.h)itree.h)inetsocket, make_async, unixsocket)tcpconnect)err.h)parseopt.h)Sfslite makes extensive use of C++ templates to provide flexibility without sacrificing type safety. sfslite does not use floating point operations. sfslite is designed to integrate well with the dmalloc debugging malloc library.
A basic tutorial on using the SFS/sfslite libraries is available from PDOS.
If you have any tips for using libasync, please contribute them!