finds.dev← search

// the find

compio-rs/compio

★ 1,744 · Rust · MIT · updated Jun 2026

A thread-per-core async Rust runtime with IOCP/io_uring/polling.

Compio is a completion-based async Rust runtime that wraps IOCP on Windows, io_uring on Linux, and falls back to poll-based I/O elsewhere — all behind a unified async API. It follows the thread-per-core model, meaning each thread runs its own executor and driver rather than sharing a thread pool. Aimed at systems programmers who want true async I/O without tokio's poll-based abstraction layer.

1. Genuinely cross-platform completion I/O: IOCP on Windows is first-class, not an afterthought bolted onto a Linux-centric design. Most alternatives (glommio, monoio) effectively abandon Windows. 2. Buffer ownership model is correct — the IoBuf/IoBufMut traits enforce that buffers stay alive for the duration of the kernel operation, which is the actual sound way to do io_uring without undefined behavior. 3. The crate split is sensible: compio-driver (proactor), compio-executor (task scheduler), compio-runtime (glue), compio-net/fs (high-level) — you can use the driver without the executor if you need to. 4. QUIC support via compio-quic and a tokio compat layer in compio-compat mean you're not locked out of the existing ecosystem.

1. 1,744 stars and no sign of production deployments or public case studies — you're betting on a small team's continued interest before this stabilizes into something you'd run in production. 2. Thread-per-core means cross-thread work requires explicit dispatch via compio-dispatcher; anything that assumes a shared thread pool (most Rust HTTP frameworks, database drivers) won't just work without compat shims or rewrites. 3. The tokio compat layer (compio-compat) is described but the README gives no signal of how complete it is — if you need tokio-tungstenite or sqlx to run on compio, you're in research territory. 4. Ecosystem is thin: no HTTP server crate, no TLS that isn't going through compat, and the async trait signatures diverge from std/tokio conventions, so any library that takes `AsyncRead + AsyncWrite` won't accept compio types directly.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →