Disclaimer: This is a work in progress
Learning io_uring by porting over the examples found in liburing, except in Zig!
There are plenty, plenty of resources talking about io_uring and its benefits in technical detail and they all probably do a better job than I will, so I'll give the TL;DR:
io_uring makes processing async I/O go brrrr by keeping syscalls to a minimum. This is done through batching reads/writes through ring buffers that are setup between the user space and the kernel space.
- io_uring-close-test
-
io_uring-test(not porting this - same as above except without file descriptor registration) - io_uring-cp
- io_uring-udp
- link-cp
- poll-bench
- send-zerocopy
- ucontext-cp
These are the resources I learnt from:
- original liburing repo
- Lord of the io_uring
- the Zig stdlib io_uring tests, and
- TigerBeetle's io_uring demos.