# Linux IO Uring
[](https://github.com/quininer/io-uring/actions)
[](https://crates.io/crates/io-uring)
[](https://github.com/quininer/io-uring/blob/master/LICENSE-MIT)
[](https://github.com/quininer/io-uring/blob/master/LICENSE-APACHE)
[](https://docs.rs/io-uring/)
The [`io_uring`](https://kernel.dk/io_uring.pdf) userspace interface for Rust.
## Safety
All APIs are safe except for pushing entries into submission queue.
This means that the developer must ensure that entry is valid, otherwise it will cause UB.
I am trying to develop a proactor library to provide a safety abstraction.
## Why Rust ?
I don't think it needs a special reason.
The `io_uring` api design is so simple and elegant
that implementing the new `io_uring` library is not much more complicated than wrapping `liburing`.
This has some advantages over wrapping c library,
it have more freedom (see concurrent mod), and it can be easier to static link.
### License
This project is licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT)
at your option.