io_uring is an incredibly exciting new linux interface that in some situations is able to outperform SPDK.
c example usage with O_DIRECT:
http://git.kernel.dk/cgit/fio/plain/t/io_uring.c
We can provide bindings to liburing which enables us to use it correctly.
I wonder how well it can play with tokio and the upcoming stabilized async/await mechanism.
There is a Rust wrapper to the io_uring mechanism that integrates with tokio here.
It is obviously very much alpha.
I hope I helped.
kernel-side submissions for IO with 0 syscalls
It's a great option but having rare submission events would put kernel thread to sleep. I don't know what is his timeout, probably have to check kernel sources, but then it requires a syscall with AWAKE flag set on.
liburing
there is https://github.com/polachok/liburing-sys so we can just derive
I just implemented a pure Rust io-uring library, I believe it will help.
Most helpful comment
I just implemented a pure Rust io-uring library, I believe it will help.