https://github.com/neondatabase/tokio-epoll-uring
Use io_uring from vanilla tokio.
https://github.com/neondatabase/tokio-epoll-uring
async io-uring rust tokio
Last synced: 6 months ago
JSON representation
Use io_uring from vanilla tokio.
- Host: GitHub
- URL: https://github.com/neondatabase/tokio-epoll-uring
- Owner: neondatabase
- Created: 2023-07-24T20:20:01.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-24T02:30:31.000Z (12 months ago)
- Last Synced: 2024-10-24T19:10:22.637Z (12 months ago)
- Topics: async, io-uring, rust, tokio
- Language: Rust
- Homepage:
- Size: 457 KB
- Stars: 33
- Watchers: 13
- Forks: 4
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
`tokio-epoll-uring` enables high-performance use of [Linux's `io_uring`](https://kernel.dk/io_uring.pdf) from vanilla [`tokio`](https://tokio.rs/).
> [!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](https://github.com/neondatabase/neon/tree/main/pageserver).
> We will share the results with the tokio community to push forward `io_uring`-enabled `tokio`.# Documentation
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`](tokio-epoll-uring/src/doc).# Examples
Check out [`./tokio-epoll-uring/examples`](./tokio-epoll-uring/examples).
# Bug Reports, Roadmap, Contributing
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.# Benchmarking
See [`./BENCHMARKING.md`](BENCHMARKING.md).