tokio-epoll-uring
enables high-performance use of Linux's io_uring
from vanilla tokio
.
Warning
This project is currently not intended for use outside of Neon.
The plan is to prove the core architectural idea by deploying it to production in Neon's Pageserver.
We will share the results with the tokio community to push forward io_uring
-enabled tokio
.
Use cargo doc --no-deps --open
.
The Rust docs include sections on the motivation behind this project, the design of the crate, and benchmarks.
If you prefer to read them in Markdown in your browser, check out the files in tokio-epoll-uring/src/doc
.
Check out ./tokio-epoll-uring/examples
.
As noted at the top of this readme file, this project is not yet intended for use outside of Neon.
- Genuine bug reports are welcome.
- We will not be able to accept feature requests at this time.
- We are unlikely to accept big refactoring PRs.
- We are likely to accept PRs that add support for new io_uring opcodes. Duplicating some code per opcdoe added is preferred over doing a big DRY refactoring.
- Feedback on the architecture is best provided by opening an issue.
See ./BENCHMARKING.md
.