ququmatz 0.1.0

Zero-dependency io_uring bindings via raw syscalls, no libc
Documentation

ququmatz

Zero-dependency io_uring bindings for Linux via raw syscalls — no libc required.

Features

  • #![no_std] — suitable for embedded or minimal runtimes
  • Direct syscall interface — no libc, no C dependencies
  • Type-safe SQE builder API for all common operations
  • Supports: read/write, vectored I/O, fixed buffers, openat/close, fsync, poll, timeout, accept/connect/send/recv, statx, fallocate, rename, unlink, shutdown, linked chains, and more
  • SQPOLL support
  • File and buffer registration

Requirements

  • Linux kernel 5.6+ (for full feature set)
  • x86_64 architecture
  • Rust 1.85+ (edition 2024)

Usage

[dependencies]
ququmatz = "0.1"
use ququmatz::{IoUring, Sqe};

let mut ring = IoUring::new(64).expect("io_uring setup failed");

// Submit a NOP to verify the ring works
ring.push(Sqe::nop().user_data(42)).expect("push");
ring.submit_and_wait(1).expect("submit");

let cqe = ring.complete().expect("completion");
assert_eq!(cqe.user_data, 42);
assert_eq!(cqe.result, 0);

License

MIT