Following the "io_uring by example" article series, implementing in zig. Zig implements liburing in it's stdlib. It's an amazing reference, and pairs very well with the referenced articles series.
A cat program in zig using normal readv syscall
The same cat program in zig using io_uring raw syscalls (i.e. no lib involved).
The same cat program in zig using zig's io_uring library (much easier).
A copy program in zig. Read a large file in many chunks, write to the destination file in chunks using io_uring. It's really just an example problem to use io_uring in a more advanced way:
- Many submissions/completions
- A variety of submission/completion types (readv and writev)
This is just for my own learning, lots of bad code, but all the concepts are there.