/awesome-iouring

Delightful io_uring packages and resources

MIT LicenseMIT

Awesome io_uring

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

  1. Introduction

  2. Tutorials

  3. Libraries

  4. Projects

  5. Articles

  6. Videos

  7. Other notable resources

Tutorials

Tutorials about 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 for tokio
  • io-uring: From the authors of tokio, without tokio dependency
  • nuclei: Reactor agnostic Proactive IO engine using io_uring
  • compio: A single threaded async runtime using io_uring on Linux if available.
  • rio: Pure rust io_uring library, unfortunately unmaintained
  • Ringbahn: io_uring library from Berlin. Unfortunately unmaintained.

Golang

  • gain - A high-performance, lightweight io_uring networking framework written entirely in Go.
  • 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

  • Liburing: Python bindings using CFFI
  • Metacall: Example python bindings using metacall

Java

  • Jasyncfio: Async io library
  • nio_uring: Async io library
  • Netty transport
  • PanamaUring :Use java Panama ffi api to provide io_uring binding for java without using jni binding, while unifying the models of file IO and network IO, and providing an easy-to-use asynchronous IO API

Kotlin

Ocaml

Projects

Projects using io_uring

Databases

Storage engines

Network

Other

Articles

Articles about io_uring

Videos

Other notable resources

Other resources about io_uring