From: Matthew Nourse (matthew_at_[hidden])
Date: 2005-12-12 00:40:15
I vote to accept asio into boost.
Potential bias disclosure: I'm friends with Chris Kohlhoff.
I have been writing asynchronous servers and clients with asio and
boost for about 20 months. The following asio & boost -based server
applications are currently running in commercial production systems:
* a gateway from a proprietary networking API to HTTP. Up since
November 2004. Windows+VC7.
* a custom authenticating HTTP proxy. Up since February 2005. Linux+gcc.
* an HTTP gateway to a proprietary IM system. Up since May 2005 except
short upgrades to my code. Linux+gcc.
* an XMPP (Jabber) gateway for the same proprietary IM system. Up
since August 2005 except short upgrades to my code. Linux+gcc.
* a lightweight publish-subscribe mechanism. Up since August 2005. Linux+gcc.
I've found asio's implementation to be extremely efficient. For
example the publish-subscribe mechanism can handle 500 requests/second
without any detectable CPU usage on a 3Ghz P4 even though my code is
untuned & does more memory allocations than is strictly necessary.
I found the asio design philosophy and documentation relatively easy
to understand however I before I used asio I had already written aynsc
socket applications using Windows' IO completion ports. I am not a
template-based design expert nor am I a longstanding boost user. My
first use of boost was when I started my first asio application in
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk