|
Boost : |
From: Dave Moore (jdmoore99_at_[hidden])
Date: 2005-12-11 17:21:01
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk