Overview
Rationale
Core Concepts and Functionality
Basic Asio Anatomy
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
Stackless Coroutines
Stackful Coroutines
C++20 Coroutines Support
Resumable C++20 Coroutines (experimental)
Networking
TCP, UDP and ICMP
Support for Other Protocols
Socket Iostreams
The BSD Socket API and Asio
Timers
Serial Ports
Signal Handling
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
Futures
Platform-Specific Implementation Notes