As the ISO Standard C++ Networking TS nears inclusion in C++20, Boost Asio, its foundation, has been available for some time; but in-depth coverage of how to use it is sparse. Asio’s own documentation, while thorough and detailed, is far from prescriptive, and offers few footholds for the beginner seeking to use and extend Asio in components of a larger software architecture. How can a library use Asio, or the TS, adding value and simplicity for users without hiding its power or sacrificing performance?
This talk from Robert Leahy of MayStreet provides all the context and prescriptive guidance required to get started building software components based on Asio and the Networking TS, ripe for reuse and composition. It covers in detail the guarantees Asio offers, and the patterns Asio uses: Why they are important, how to use and extend them, and how to present them to users of your components. It further demonstrates patterns and practices for constructing testable Asio- and Networking TS-based components.
The talk also includes an overview of how the Networking TS is evolving on its way to inclusion in the Standard, becoming more general and integrating with other Standard Library features, particularly the Parallelism TS and its executors, so that come C++20 your libraries will be ready to pivot from Asio to the Standard painlessly.