What problem does it solve? Writing high-performance asynchronous I/O on Linux requires navigating io_uring's submission and completion queue model, which differs significantly from traditional blocking or epoll-based I/O. This Skill provides the setup patterns, operation references, and best practices needed to write correct io_uring code in C or Rust. ## Core Features & Use Cases - C (liburing) Reference: Covers ring setup, submit-and-wait patterns, common operations (read, write, accept, connect, timeout), and registered buffers/files for zero-copy I/O. - Rust (tokio-rs/io-uring) Reference: Covers IoUring setup, opcode builders, submission/completion queue access, and the entry builder pattern with user_data and flags. - Kernel Version Guidance: Maps io_uring features to kernel versions (5.1 through 6.0) so you know which operations your target kernel supports. - Use Case: You are building a high-throughput network server in Rust and need to batch socket accept and recv operations with minimal syscall overhead. Use this Skill to set up the ring, push Accept and Recv opcodes, and process completions with user_data context. ## Quick Start Use the io-uring skill to write a Rust program that reads a file asynchronously using the tokio-rs/io-uring crate with a 256-entry ring.