Monoio is a Rust asynchronous runtime designed for high-performance I/O-bound servers and applications, built around native OS async I/O primitives (e.g. io_uring on Linux, epoll / kqueue on other Unix-like systems), rather than layering atop an existing runtime. Its design philosophy centers on a “thread-per-core” model where each core runs its own event loop, minimizing cross-thread synchronization needs, avoiding the overhead and complexity of task scheduling, and letting developers write efficient, low-overhead asynchronous networking or I/O code. Because tasks do not need to be Send or Sync and can make use of thread-local data safely, Monoio simplifies certain concurrency paradigms while delivering performance benefits for workloads like high-throughput network servers, proxies, or real-time services. The runtime includes abstractions for async sockets, readers/writers, TCP/UDP networking, and compatibility layers (macros, crates) to ease adoption.
Features
- Pure io_uring / epoll / kqueue based asynchronous I/O runtime — no layered runtime overhead
- Thread-per-core scheduling model, avoiding work-stealing and synchronization overhead, yielding high throughput for I/O-bound workloads
- Allows async tasks without requiring them to be Send or Sync, enabling simpler usage of thread-local data and reducing boilerplate
- Async networking primitives (TCP/UDP, stream read/write, TLS support via wrappers) ready for real-world server building
- Lightweight, minimal abstraction runtime — ideal for performance-critical server applications like proxies, load-balancers, microservices
- Dual-license (MIT/Apache) and open-source with stable maintenance and examples for quick adoption