README: mention that udp io_uring implementation might be unsound

This commit is contained in:
Joakim Frostegård 2023-08-28 23:58:12 +02:00
parent cdc817cbdf
commit c9ae2e6830

View file

@ -13,11 +13,11 @@ of sub-implementations for different protocols:
[mio]: https://github.com/tokio-rs/mio [mio]: https://github.com/tokio-rs/mio
[glommio]: https://github.com/DataDog/glommio [glommio]: https://github.com/DataDog/glommio
| Name | Protocol | OS requirements | | Name | Protocol | OS requirements |
|--------------|-----------------------------------|--------------------------------------| |--------------|-----------------------------------|-----------------|
| aquatic_udp | [BitTorrent over UDP] | Unix-like / Linux 6.0+ with io_uring | | aquatic_udp | [BitTorrent over UDP] | Unix-like |
| aquatic_http | [BitTorrent over HTTP] over TLS | Linux 5.8+ | | aquatic_http | [BitTorrent over HTTP] over TLS | Linux 5.8+ |
| aquatic_ws | [WebTorrent], optionally over TLS | Linux 5.8+ | | aquatic_ws | [WebTorrent], optionally over TLS | Linux 5.8+ |
Features at a glance: Features at a glance:
@ -192,9 +192,10 @@ This is the most mature of the implementations. I consider it ready for producti
#### io_uring #### io_uring
An experimental io_uring backend is available. It currently requires Linux An experimental (and possibly unsound) io_uring backend is available. It
6.0 or later and will attempt to fall back to the [mio] backend if run with currently requires Linux 6.0 or later and will attempt to fall back to the
older kernels. To enable it, pass the `io-uring` feature when compiling: [mio] backend if run with older kernels. To enable it, pass the `io-uring`
feature when compiling:
```sh ```sh
cargo build --release -p aquatic_udp --features "io-uring" cargo build --release -p aquatic_udp --features "io-uring"
@ -204,7 +205,7 @@ cargo build --release -p aquatic_udp --features "io-uring"
![UDP BitTorrent tracker throughput comparison](./documents/aquatic-udp-load-test-illustration-2023-01-11.png) ![UDP BitTorrent tracker throughput comparison](./documents/aquatic-udp-load-test-illustration-2023-01-11.png)
The mio backend was used. More details are available [here](./documents/aquatic-udp-load-test-2023-01-11.pdf). The default backend was used. More details are available [here](./documents/aquatic-udp-load-test-2023-01-11.pdf).
--- ---