libasr is a free, simple and portable asynchronous resolver library.
It allows to run dns queries and perform hostname resolutions in a fully asynchronous fashion. The implementation is thread-less, fork-less, and does not make use of signals or other "tricks" that might get in the developer's way. The API was initially developed for the OpenBSD operating system, where it is natively supported.
This library is intended to bring this interface to other systems. It is originally provided as a support library for the portable version of the OpenSMTPD daemon, but it can be used in any other contexts. It is known to work on the following systems:
The primary source of information about libasr is the github repository.
Get the source
You can get the latest sources from github:
git clone git://github.com/OpenSMTPD/libasr.git
Tarballs for development snapshots and official releases are available on the OpenSMTPD website.
./bootstrap # only if building from git sources ./configure make sudo make install
For documentation on using the API, please refer to the OpenBSD manpages. Note that unlike the native OpenBSD implementation, this version is not currently thread-safe.
For now, please use the OpenSMTPD mailing list for questions related to libasr. You can also get in touch with libasr developers on the "Official" IRC channel for the OpenSMTPD project at:
#OpenSMTPD @ irc.freenode.net
Bug reports must be filed on the project's issue tracker.