Overview
Rationale
Basic Asio Anatomy
Asynchronous Model
Asynchronous Operations
Asynchronous Agents
Associated Characteristics and Associators
Child Agents
Executors
Allocators
Cancellation
Completion Tokens
Supporting Library Elements
Higher Level Abstractions
Core Concepts and Functionality
The Proactor Design Pattern: Concurrency Without Threads
Threads and Asio
Strands: Use Threads Without Explicit Locking
Buffers
Streams, Short Reads and Short Writes
Reactor-Style Operations
Line-Based Operations
Custom Memory Allocation
Per-Operation Cancellation
Handler Tracking
Concurrency Hints
Composition and Completion Tokens
Stackless Coroutines
Stackful Coroutines
Futures
C++20 Coroutines Support
Resumable C++20 Coroutines (experimental)
Deferred Operations (experimental)
Promises (experimental)
Co-ordinating Parallel Operations (experimental)
Compositions as Asynchronous Operations
Completion Token Adapters
Networking
TCP, UDP and ICMP
Support for Other Protocols
Socket Iostreams
The BSD Socket API and Asio
Timers
Files
Pipes
Serial Ports
Signal Handling
Channels (experimental)
POSIX-Specific Functionality
UNIX Domain Sockets
Stream-Oriented File Descriptors
Fork
Windows-Specific Functionality
Stream-Oriented HANDLEs
Random-Access HANDLEs
Object HANDLEs
SSL
C++ 2011 Support
Movable I/O Objects
Movable Handlers
Variadic Templates
Array Container
Atomics
Shared Pointers
Chrono
Platform-Specific Implementation Notes