News for hackers. Stuff that matters.
Re:High-Performance DBMSs with io_uring: When and How to use it by LAC-Tech on Tuesday January 06, 2026 @10:57PM (#46522375)
NVMe passthrough skips abstractions. To access NVMe de- vices directly, io_uring provides the OP_URING_CMD opcode, which issues native NVMe commands via the kernel to device queues. By bypassing the generic storage stack, passthrough reduces software- layer overhead and per-I/O CPU cost. This yields an additional 20% gain, increasing throughput to 300 k tx/s (Figure 5, +Passthru).

Which userspace libraries support this?. Liburing does, but Zig's Standard Library (relevant because a tigerbeetler wrote the article) does not, just silently gives out corrupt values from the completion queue.

On the rust side, rustix_uring does not support this, but widely doesn't let you set kernel flags for something it doesn't support. tokio-rs/io-uring looks like it might from the docs, but I can't figure out how (if anyone uses it there, let me know).

Re:High-Performance DBMSs with io_uring: When and How to use it by to_ziegler on Wednesday January 07, 2026 @03:10AM (#46523837)
Great point. It is indeed the case that most io_uring libraries are lagging behind liburing. There are two main reasons for this: (1) io_uring development is moving very quickly (see the linked figure in another comment), and (2) liburing is maintained by Axboe himself and is therefore tightly coupled to io_uring’s ongoing development. One pragmatic "solution" is to wrap liburing with FFI bindings and maintain those yourself.
Re:High-Performance DBMSs with io_uring: When and How to use it by LAC-Tech on Wednesday January 07, 2026 @04:17AM (#46524258)
That's what liburing_rs[1] is doing.

I am foolishly trying to make pure rust bindings myself [2].

[1] https://docs.rs/axboe-liburing/

[2] https://docs.rs/hringas

But yeah the liburing test suite is massive, way more than anyone else has.

Re:High-Performance DBMSs with io_uring: When and How to use it by to_ziegler on Wednesday January 07, 2026 @04:36AM (#46524383)
Pretty nice library! Personally, I think having a language-native library is great. The only downside is that it becomes a long-term commitment if it needs to stay in sync with the development of io_uring. I wonder whether it would be a good idea to provide C bindings from the language-specific library, so it can be more easily integrated and tested into the liburing test suite with minimal effort.
Re:High-Performance DBMSs with io_uring: When and How to use it by LAC-Tech on Wednesday January 07, 2026 @05:18AM (#46524641)
woah that reverse uno of making C bindings from my rust bindings so I can piggy back on the awesome liburing tests is really clever :) thanks for that.