Compio
A thread-per-core Rust runtime with IOCP/io_uring/polling. The name comes from "completion-based IO". This crate is inspired by monoio.
Why not Tokio?
Tokio is a great generic-propose async runtime. However, it is poll-based, and even uses undocumented APIs on Windows. We would like some new high-level APIs to perform IOCP/io_uring.
Unlike tokio-uring
, this runtime isn't Tokio-based.
This is mainly because that no public APIs to control IOCP in mio
,
and tokio
won't public APIs to control mio
before mio
reaches 1.0.
Why not monoio/tokio-uring?
They don't support Windows.
Quick start
Add compio
as dependency:
compio = { version = "0.8.0", features = ["macros"] }
Then we can use high level APIs to perform filesystem & net IO.
use File;
async
You can also control the low-level driver manually. See driver
example of the repo.