Anyone using io_uring?

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • glommio

    Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.

  • After retbleed, spectre and meltdown mitigations took more than 60% of the performance of our CPUs, we have the opportunity to get a good chunk of that performance back thanks to io_uring. Anyhow I don't see many projects using it yet (Glommio being the big exception).

  • rio

    pure rust io_uring library, built on libc, thread & async friendly, misuse resistant (by spacejam)

  • for completeness there is also rio, but:

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • xNVMe

    Portable and high-performance libraries and tools for NVMe devices as well as support for traditional/legacy storage devices/interfaces.

  • Basically io_uring grew a lot, the latest API offers incredible tools but there are very few examples in any language (xnvme and fio), and in particular I'm struggling to understand how to do it in Rust: where should unsafe code stop? should I simply expose the io_uring api as unsafe, or should I do more work in C and present the ring when ready to rust?

  • tokio-uring

    An io_uring backed runtime for Rust

  • - Tokio suffers from a similar problem

  • fio

    Flexible I/O Tester

  • Basically io_uring grew a lot, the latest API offers incredible tools but there are very few examples in any language (xnvme and fio), and in particular I'm struggling to understand how to do it in Rust: where should unsafe code stop? should I simply expose the io_uring api as unsafe, or should I do more work in C and present the ring when ready to rust?

  • cachegrand

    cachegrand - a modern data ingestion, processing and serving platform built for today's hardware

  • cachegrand ( https://cachegrand.io/ ), my OSS caching platform, uses io_uring & fibers

  • firecracker

    Secure and fast microVMs for serverless computing.

  • Firecracker is one great example. It's a lightweight virtualization technology for Linux that uses KVM. It virtualizes guest disk devices as files on the host.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • async-std

    Async version of the Rust standard library

  • Have a look at these: https://github.com/async-rs/async-std/tree/main/examples

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts