io_uring
Awesome io_uring
is considered one of the most revolutionary interfaces
for the linux kernel, find out why.
In this repository we try to collect examples, tutorials and documentation about this amazing project, to raise awarness and knowledge.
Table of contents
Tutorials
Tutorials about io_uring
- io_uring and networking in 2023: tutorial written by Jens Axboe, the creator of
io_uring
C
- Lord of the
io_uring
: Amazing collection of tutorials with deep explanations, unfortunately not updated often.
Zig
Libraries
Libraries for using io_uring
C
- liburing: Helper to interact with the kernel
io_uring
interface - xnvme: NVMe library with
io_uring
support - SPDK: Intel library focused on performant io, with
io_uring
support - libev: High performance event loop
C++
- Seastar: Asynchronous event-driven framework
- liburing4cpp: Binding for
io_uring
with coroutines support - ubdsrv: Userspace block device driver
using
io_uring
- libunifex: Facebook prototype for cpp async programming model
D
- during: An
io_uring
implementation in pure Dlang
Rust
- tokio-uring: An
io_uring
backend fortokio
- io-uring: From the authors of
tokio
, withouttokio
dependency - rio: Pure rust
io_uring
library, unfortunately unmaintained - Ringbahn:
io_uring
library from Berlin. Unfortunately unmaintained.
Golang
- gouring: Amazing
io_uring
library in pure golang - iouring-go: Async interface for
io_uring
Javascript
- Bun: Bun has support for
io_uring
- Nodejs: Issue tracking
io_uring
support - Deno: Issue tracking
io_uring
support
Python
Java
- Jasyncfio: Async io library
- nio_uring: Async io library
- Netty transport
Kotlin
- kuring: Async io library
Ocaml
- ocaml-uring:
io_uring
bindings for OCaml
Projects
Projects using io_uring
Databases
- ClickHouse
- Postgres (experimental)
- questdb
- Scylladb
- Yottastore
Storage engines
Network
Other
Articles
Articles about io_uring
- Why you should use
io_uring
- Efficient IO with
io_uring
- Ringing in a new asynchronous I/O API
- How io_uring and eBPF Will Revolutionize Programming in Linux
- Experiments with io_uring
- IO_uring Fixed Buffer Versus Non-Fixed Buffer Performance Comparison on NVMe
- Missing manuals - io_uring worker pool
- io_uring in Android OTA: Linux plumbers conference 2022 presentation
- A journey to io_uring, AIO and modern storage devices: includes experiments on Optane storage
Videos
Other notable resources
Other resources about io_uring
- IRC channel:
discussions about
io_uring
. You can find the archives here - Mailing list: The official dev mailing list of
io_uring
- Stackoverflow:
io_uring
tagged questions and answers on stackoverflow