Asynchronous I/O for C++

Version 1.0

Table of Contents

What is ioxx?

The ioxx library provides primitives for asynchronous I/O in C++. That kind of thing is typically useful for people who would like to implement a highly concurrent network service, i.e. an application that performs input/output simultaneously on a great number of sockets. The library's main components are a socket event dispatcher, a time event dispatcher, and an asynchronous DNS resolver. There is also a class interface to socket programming that offers those wonders of modern C++ such as exception-style error reporting, transparent resource management, type-safety, and support for custom memory allocation strategies. Ioxx is thread-safe in the sense that it is fully re-entrant. The code runs on any POSIX-compliant operating system, most notably Linux, NetBSD, Solaris, AIX, HP/UX, and Windows.

Ioxx depends mandatorily on the excellent Boost libraries. The optional asynchronous DNS resolver depends on GNU ADNS version 1.4 (or later). The reference documentation can be re-built with doxygen.

How to download the latest version

How to be notified of new releases

If you would like to be notified whenever a new version becomes available, subscribe to the ioxx RSS feed or ATOM log.

How to configure, compile, and install this library

For the impatient: ./configure && make check && make install

Ioxx is a header-only library that does not require any compilation -- with the exception of the test suite. The standard Autoconf installation procedure is described at great length in the distributed file INSTALL. In addition to the usual standard options, ioxx can be configured with a number of additional switches. If those options are left unspecified, ioxx tries to auto-detect whether those features are available or not. Specifying these options is usually unnecessary. A status summary will be output at the end of the configure run.

How to get help, submit patches, or report bugs

Please submit bug reports or feature requests to the ioxx bug tracker. The library is still fairly new and I'm particularly interested in hearing about portability problems, i.e. platforms on which ioxx doesn't compile or fails the test suite.


The ioxx library is distributed under the terms of the GNU Lesser General Public License version 3 or, at your option, any later version. Ioxx is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Generated on Mon Mar 1 18:42:37 2010 for ioxx by  doxygen 1.6.3