Librascal is a C/C++ library for asynchronous networking. It is a networking stack abstraction library which simplifies writing portable and scalable applications. It can be used with various threading models.
The library supports TCP and UDP protocols, basic DNS resolution and fully supports service discovery. It implements buffered data flow, has helper functions for processing text based protocols and several helper classes for C++.
Many options, such as timeouts, retry counters and the list of DNS servers can be adjusted at runtime.
To use the library an application must include the rascal.h header file and link against librascal, a shared library (static linking is not supported and such support is not planned).
The library has no external dependencies except for the standard system libraries. To install it, compile the source code then type make install.