|
2 | 2 | This library provides a c++20 coroutine wrapper for networking and IO related functionality.
|
3 | 3 | It is an addition to [async++](https://github.com/asyncpp/asyncpp) which provides general coroutine tasks and support classes.
|
4 | 4 |
|
5 |
| -This library is developed and tested on Ubuntu linux. There is also experimental support for MacOS. |
6 |
| -Windows support is planned but not yet finished. |
| 5 | +The library supports multiple IO backends for the various operating systems: |
| 6 | +- select (Linux, MacOS) |
| 7 | +- io_uring (Linux 5.1+) |
| 8 | +- IOCP (Windows) |
| 9 | + |
| 10 | +Features include: |
| 11 | +- Asynchronous socket IO |
| 12 | +- Asynchronous file IO (only on uring & IOCP) |
| 13 | +- Convenient handling of ips and endpoints |
| 14 | +- Coroutine ready wrapper for OpenSSL TLS |
| 15 | +- Asynchronous DNS client with support for TSIG |
| 16 | +- Ability to cancel most operations using stop_tokens |
| 17 | +- Support for error handling using std::error_code or exceptions |
7 | 18 |
|
8 | 19 | Tested and supported compilers:
|
9 |
| -| Linux | MacOS (best effort) | |
10 |
| -|-----------------------------------------------------------------------|---------------------------------------------------------------------| |
11 |
| -| [![ubuntu-2004_clang-10][img_ubuntu-2004_clang-10]][Compiler-Support] | [![macos-12_clang-15][img_macos-12_clang-15]][Compiler-Support] | |
12 |
| -| [![ubuntu-2004_clang-11][img_ubuntu-2004_clang-11]][Compiler-Support] | [![macos-12_gcc-12][img_macos-12_gcc-12]][Compiler-Support] | |
13 |
| -| [![ubuntu-2004_clang-12][img_ubuntu-2004_clang-12]][Compiler-Support] | [![macos-12_gcc-14][img_macos-12_gcc-14]][Compiler-Support] | |
14 |
| -| [![ubuntu-2004_gcc-10][img_ubuntu-2004_gcc-10]][Compiler-Support] | [![macos-13_clang-15][img_macos-13_clang-15]][Compiler-Support] | |
15 |
| -| [![ubuntu-2204_clang-13][img_ubuntu-2204_clang-13]][Compiler-Support] | [![macos-13_gcc-12][img_macos-13_gcc-12]][Compiler-Support] | |
16 |
| -| [![ubuntu-2204_clang-14][img_ubuntu-2204_clang-14]][Compiler-Support] | [![macos-13_gcc-14][img_macos-13_gcc-14]][Compiler-Support] | |
17 |
| -| [![ubuntu-2204_clang-15][img_ubuntu-2204_clang-15]][Compiler-Support] | [![macos-14_clang-15][img_macos-14_clang-15]][Compiler-Support] | |
18 |
| -| [![ubuntu-2204_gcc-11][img_ubuntu-2204_gcc-11]][Compiler-Support] | [![macos-14_gcc-12][img_macos-14_gcc-12]][Compiler-Support] | |
19 |
| -| [![ubuntu-2204_gcc-10][img_ubuntu-2204_gcc-10]][Compiler-Support] | [![macos-14_gcc-14][img_macos-14_gcc-14]][Compiler-Support] | |
| 20 | +| Linux | Windows | MacOS (best effort) | |
| 21 | +|-----------------------------------------------------------------------|---------------------------------------------------------------------|---------------------------------------------------------------------| |
| 22 | +| [![ubuntu-2004_clang-10][img_ubuntu-2004_clang-10]][Compiler-Support] | [![windows-2019_msvc16][img_windows-2019_msvc16]][Compiler-Support] | [![macos-12_clang-15][img_macos-12_clang-15]][Compiler-Support] | |
| 23 | +| [![ubuntu-2004_clang-11][img_ubuntu-2004_clang-11]][Compiler-Support] | [![windows-2022_msvc17][img_windows-2022_msvc17]][Compiler-Support] | [![macos-12_gcc-12][img_macos-12_gcc-12]][Compiler-Support] | |
| 24 | +| [![ubuntu-2004_clang-12][img_ubuntu-2004_clang-12]][Compiler-Support] | | [![macos-12_gcc-14][img_macos-12_gcc-14]][Compiler-Support] | |
| 25 | +| [![ubuntu-2004_gcc-10][img_ubuntu-2004_gcc-10]][Compiler-Support] | | [![macos-13_clang-15][img_macos-13_clang-15]][Compiler-Support] | |
| 26 | +| [![ubuntu-2204_clang-13][img_ubuntu-2204_clang-13]][Compiler-Support] | | [![macos-13_gcc-12][img_macos-13_gcc-12]][Compiler-Support] | |
| 27 | +| [![ubuntu-2204_clang-14][img_ubuntu-2204_clang-14]][Compiler-Support] | | [![macos-13_gcc-14][img_macos-13_gcc-14]][Compiler-Support] | |
| 28 | +| [![ubuntu-2204_clang-15][img_ubuntu-2204_clang-15]][Compiler-Support] | | [![macos-14_clang-15][img_macos-14_clang-15]][Compiler-Support] | |
| 29 | +| [![ubuntu-2204_gcc-11][img_ubuntu-2204_gcc-11]][Compiler-Support] | | [![macos-14_gcc-12][img_macos-14_gcc-12]][Compiler-Support] | |
| 30 | +| [![ubuntu-2204_gcc-10][img_ubuntu-2204_gcc-10]][Compiler-Support] | | [![macos-14_gcc-14][img_macos-14_gcc-14]][Compiler-Support] | |
20 | 31 |
|
21 | 32 |
|
22 | 33 | [img_ubuntu-2004_clang-10]: https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/asyncpp/asyncpp-io/badges/compiler/ubuntu-2004_clang-10/shields.json
|
|
0 commit comments