This library provides a c++20 coroutine wrapper for networking and IO related functionality. It is an addition to async++ which provides general coroutine tasks and support classes.
The library supports multiple IO backends for the various operating systems:
- select (Linux, MacOS)
- io_uring (Linux 5.1+)
- IOCP (Windows)
Features include:
- Asynchronous socket IO
- Asynchronous file IO (only on uring & IOCP)
- Convenient handling of ips and endpoints
- Coroutine ready wrapper for OpenSSL TLS
- Asynchronous DNS client with support for TSIG
- Ability to cancel most operations using stop_tokens
- Support for error handling using std::error_code or exceptions
Tested and supported compilers:
Linux | Windows | MacOS (best effort) |
---|---|---|