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/
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.
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).