views:

8012

answers:

5

The documentation available on the boost website is... limited.

From what I've been able to read, the general consensus is that it is simply difficult to find good documentation on the boost::asio library.

Is this really the case? If so, why?

Notes:

  • I have already found the (non-boost) Asio website - and the documentation looks to be identical to that on the boost website.
  • I know that Boost::asio is new! I'm looking for solutions not excuses.

Edit:

  • There is a proposal to add a networking library to standard library for TR2 written by the author of Boost:asio (Christopher Kohlhoff). While it isn't documentation for boost:asio, it does use it as a base for the TR2 proposal. Since the author put more effort into this document, I have found it to be somewhat helpful, if not as a reference, then at least as an overview.
+13  A: 

First, I've been using Boost.Asio for quite a while already -- and I share your concern. To address your question:

  • There really is very scarce documentation about Boost.Asio aside from the introduction and tutorial. I am not the author, but this is mostly because there are just too many things to document for something as low-level as an Asynchronous IO Library.
  • The examples give more away than the tutorials do. If you don't mind spending a little time looking at the different examples, I would think they should suffice to get you started. If you want to run away with it, then the reference documentation should help you a lot.
  • Ask around in the Boost Users and Boost Developers mailing list if you're really stuck or looking for specific guidance. I'm pretty sure a lot of people will be willing to address your concerns on the mailing lists.

There are efforts (not part of Boost.Asio) to expose a lot of the functionality and possible alternative use cases. This at best is scattered around the web in blogs and other forms of non-packaged documentation.

One thing that is unclear and which will really need close coordination with the author and developers of the Boost.Asio library would be as far as extending and customizing it for a specific platform or adding specific new functionality. This should be improved though but the good thing is it's looking like Asio will be a reference implementation for a standard library technical report (for an asynchronous IO library in the STL) in the future.

Dean Michael
Thanks for confirming suspicions.Unfortunately, I tried learning from the examples, with decent but limited success.Unfortunately, I cannot justify using a library which has a small set of examples as a set of instructions.I may heed your advice to ask on the ML, but eagerly await better support!
michalmocny
I just put two-and-two together.One of the top google hits (and most informative articles) I found while googling boost asio was on your blog :)
michalmocny
Yeah, but I didn't want to say it out in the open yet. ;) Chis Kholhoff (the author) also has a blog in which he talks a lot about Asio and how it can be used in not so common circumstances.
Dean Michael
+8  A: 

I wrote two small articles that could be used as introductions to boost.asio. They are available from my site

Alex Ott
I found Alex Ott's website independently while researching whether or not to use asio or ace for our current project. His site answered many of my questions.
caspin
A: 

I was quite curious about that, too but this page gave me some head start. It's in French, but you could use google translate which is pretty readable (I had to follow down this path myself).

http://gwenael-dunand.developpez.com/tutoriels/cpp/boost/asio/

A. Novikov
+4  A: 

Some nice documentation on boost including a chapter on asio can be found in a (free) boost book at http://en.highscore.de/cpp/boost/index.html. The chapter on asio provides a general overview and then goes as far as how to develop your own custom asio extensions. Really fantastic effort by Boris Schäling!

Ralf
+4  A: 

I stumbled on the following pdf: http://boost.cowic.de/rc/pdf/asio_doc.pdf

Kisalay