16 releases
Uses new Rust 2024
| 0.3.1 | Nov 22, 2025 |
|---|---|
| 0.2.2 | Aug 17, 2024 |
| 0.2.0 | Jun 14, 2024 |
| 0.1.7 | Mar 30, 2024 |
| 0.0.0 | Jul 17, 2021 |
#532 in Asynchronous
570KB
11K
SLoC
The A10 io_uring library.
This library is meant as a low-level library safely exposing the io_uring API. For simplicity this only has two main types and a number of helper types:
Ringis a wrapper around io_uring used to poll for completion events.AsyncFdis a wrapper around a file descriptor that provides a safe API to schedule operations.
Some modules provide ways to create AsyncFd, e.g. OpenOptions, others
are simply a place to expose the Futures supporting the scheduled
operations. The modules try to follow the same structure as that of the
standard library.
Additional documentation can be found in the io_uring(7) manual.
Notes
Most I/O operations need ownership of the data, e.g. a buffer, so it can
delay deallocation if needed. For example when a Future is dropped before
being polled to completion. This data can be retrieved again by using the
Extract trait.
Examples
Examples can be found in the examples directory of the source code, available online on GitHub.
A10
The A10 io_uring library.
This library is meant as a low-level library safely exposing the io_uring API.
A10 is expected to be integrated into a Future runtime, but it can work as a
stand-alone library.
For simplicity this only has two main types and a number of helper types:
Ringis a wrapper around io_uring used to poll for completion events.AsyncFdis a wrapper around a file descriptor that provides a safe API to schedule operations.
Linux Required
Currently this requires a fairly new Linux kernel version, everything should work on Linux v6.1 and up.
Examples
Examples can be found in the examples directory of the source code.
Dependencies
~380KB