Our great sponsors
-
glommio
Glommio is a thread-per-core crate that makes writing highly parallel asynchronous applications in a thread-per-core architecture easier for rustaceans.
-
rio
pure rust io_uring library, built on libc, thread & async friendly, misuse resistant (by spacejam)
-
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.
-
xNVMe
Portable and high-performance libraries and tools for NVMe devices as well as support for traditional/legacy storage devices/interfaces.
-
cachegrand
cachegrand - a modern data ingestion, processing and serving platform built for today's hardware
-
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.
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).
for completeness there is also rio, but:
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 suffers from a similar problem
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 ( https://cachegrand.io/ ), my OSS caching platform, uses io_uring & fibers
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.
Have a look at these: https://github.com/async-rs/async-std/tree/main/examples