Glossary: Defines some terms used in the design and implementation of Boost.Asio.
Proactor: The Boost.Asio library is based on the Proactor pattern. This design note outlines the advantages and disadvantages of this approach.
Threads: An implementation of Boost.Asio for a particular platform may make use of one or more additional threads to emulate asynchronicity. This design note discusses design rules applied to the use of threads in this way.
Services: This design note describes the pattern used for structuring asynchronous object implementation.
Handlers: All asynchronous operations take a function object that will be called when the operation completes. This design note outlines the reasons for making the this handler type a template parameter, rather than using boost::function.
Close as Cancel: Asynchronous socket operations can be cancelled by closing the socket. This design note describes why this approach was selected rather than allowing individual operations to be cancelled.
Buffers: This design note examines the buffer abstraction used by Boost.Asio in order to support scatter-gather operations.
Platform-Specific Implementation: This design note lists platform-specific implementation details, such as the default demultiplexing mechanism, the number of threads created internally, and when threads are created.