Skip to content
This repository has been archived by the owner on Jun 22, 2023. It is now read-only.


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation


Warning This repository is not updated and contains known issues that are fixed in upstream OpenBSD. Please use the bundled version in OpenSMTPD instead.

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:

  • Linux
  • FreeBSD
  • NetBSD
  • DragonFly
  • MacOSX

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://

Tarballs for development snapshots and official releases are available on the OpenSMTPD website.


All you should need is working C compiler, a C library and the autotools (autoconf,automake,libtool). Build and install using the following commands:

./bootstrap # only if building from git sources
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 @

Bug reports must be filed on the project's issue tracker.