
I vote to accept asio into Boost. I have previously experimented with earlier releases in the asio 1.3.x series. Using asio, I have built proof-of-concept applications that compile on Linux and Win32 handling udp multicast traffic at peak rates in excess of 100Mbit/s with low CPU utilization and no packet loss, even when compared with an existing hand-coded production implementation. Asio represents a serious effort at cross-platform networking by someone who clearly understands the problem domain. I have been representing it to my colleagues as "ACE without the cruft." I think that asio is a terrific framework that can (and will) be extended by many contributors. The SSL support and iostreams examples are strong evidence asio's extensibility. As a follower of the Boost mailing list for the past 5 years, I think I can say with confidence that asio surpasses any of the earlier false starts at a Boost networking library effort. What follows are nits, none of which are showstoppers for my support of accepting asio into Boost: For the deadline_time, I am unsure as to whether functions like "expires_from_now" benefit from their default coupling to boost::datetime. Most timer operations in high performance I/O tend to be relative, which is easily expressed without a clock binding… It does help that asio only depends upon the headers of datetime. Documentation: The annotated examples and the tutorial are the strength of the documentation, and are enough for people familiar with the problem domain to get their footing. The Doxygen docs are a bit hard to navigate. I would prefer hand-written documentation of the common public classes and concepts like buffer, deadline_timer, datagram_socket, etc. Doxygen docs are useful for completeness, but is seems to me like many of the classes in Boost::asio are of interest only to those looking to extend the framework. The documentation could be split into sections for users looking for basic async sockets, and users wanting to write their own services or demuxers. Installation of the Boost preview package: There weren't obvious instructions on how to overlay the asio boost evaluation package into an existing boost source tree. It seems like the installation/compilation docs apply to the standalone asio distribution, not the Boost evaluation package. I chose to unpack the asio Boost proposal package into my Boost 1.33.1source tree. The build instructions in the documentation didn't work for that case. Rather, I had to go around to the individual examples in libs\asio\example and run bjam from there. David Moore