For an async runtime for concurrent network services in Rust, the first results are tokio-rs/tokio (Tokio is the leading asynchronous runtime for Rust, providing a work-stealing task scheduler, async I/O over epoll/kqueue/iouring, timers, synchronization primitives, and full async/await support — exactly what you need for building concurrent network services), monoio-rs/monoio (Monoio is a Rust async runtime library that uses thread-per-core scheduling and iouring for high-performance network services, but its concurrency model is thread-per-core rather than work-stealing, so it is a narrower fit for this search) and smol-rs/smol (Smol is a lightweight Rust async runtime that provides async I/O, a work-stealing task scheduler, timer support, and synchronization primitives—exactly what you need to build concurrent network services with async/await). tokio-rs/tokio-uring and tokio-rs/mio round out the shortlist. Compare the match explanations and check the project documentation against your requirements.
High-performance frameworks and libraries for building scalable, non-blocking concurrent network services using the Rust language.
Tokio is an asynchronous runtime for the Rust programming language, designed to manage and execute concurrent tasks efficiently. It provides a multi-threaded execution environment that schedules lightweight tasks across available processor cores, utilizing a work-stealing scheduler to balance computational load. By employing a poll-based execution model and waker-based notifications, the runtime drives asynchronous operations forward without requiring active polling loops, ensuring efficient resource utilization. The project distinguishes itself through a comprehensive suite of tools for high
Tokio is the leading asynchronous runtime for Rust, providing a work-stealing task scheduler, async I/O over epoll/kqueue/io_uring, timers, synchronization primitives, and full async/await support — exactly what you need for building concurrent network services.
monoio is a high-performance asynchronous runtime and executor for Rust. It implements a thread-per-core concurrency model that pins tasks to specific CPU cores to eliminate synchronization overhead and data migration. The runtime leverages the io_uring interface to perform non-blocking system calls and reduce kernel-user mode memory copying. It utilizes a high-performance I/O driver and zero-copy TCP stream wrapping to manage data transfer via shared-memory buffers. The project provides capabilities for CPU core affinity management, low-latency system programming, and high-performance netwo
Monoio is a Rust async runtime library that uses thread-per-core scheduling and io_uring for high-performance network services, but its concurrency model is thread-per-core rather than work-stealing, so it is a narrower fit for this search.
Smol is a lightweight Rust asynchronous runtime and task executor. It provides a suite of foundational tools for scheduling and executing asynchronous futures, managing background workloads, and handling non-blocking network and file operations. The project includes a compatibility layer for adapting asynchronous types and execution contexts, enabling futures to run across different runtime ecosystems. It also features a mechanism to offload synchronous I/O and CPU-intensive operations to dedicated worker thread pools to prevent runtime stalls. Its capabilities cover non-blocking network I/O
Smol is a lightweight Rust async runtime that provides async I/O, a work-stealing task scheduler, timer support, and synchronization primitives—exactly what you need to build concurrent network services with async/await.
Tokio-uring is an asynchronous runtime for Rust that provides a framework for high-performance, non-blocking input and output operations. By integrating directly with the Linux kernel interface, it enables applications to offload heavy data transfer tasks to the operating system, maintaining responsiveness while managing concurrent tasks through a specialized asynchronous executor. The framework distinguishes itself by utilizing kernel-level submission and completion queues to facilitate data transfers. It employs zero-copy techniques and pre-allocated memory buffer pools, which allow data to
tokio-uring is a Rust async runtime that leverages io_uring for high-performance I/O, so it fits the category; however, it is Linux-only and lacks a work-stealing scheduler, making it a narrower option within the category.
Mio is a low-level I/O library for Rust that provides an event-driven framework for monitoring multiple network sockets and file descriptors. It acts as a portable wrapper for operating system native polling systems, including epoll, kqueue, and IOCP, allowing applications to trigger events when resources are ready for reading or writing without blocking the execution thread. The library provides a non-blocking socket interface for managing TCP, UDP, and Unix sockets. It distinguishes itself through a vectored I/O implementation, enabling scatter-gather reads and writes across multiple buffer
Mio is a low-level I/O event loop abstraction for Rust that wraps epoll/kqueue/IOCP and provides non-blocking socket polling, but it lacks a work-stealing task scheduler, timer support, and async synchronization primitives, making it a foundational building block for runtimes like Tokio rather than a complete async runtime library.
Zero-cost asynchronous programming in Rust
Futures-rs provides foundational async abstractions (Future, Stream, combinators) but is not itself an async runtime with I/O drivers, work-stealing, or timer backends—it's the layer that runtimes like Tokio build upon rather than the runtime you'd use to build network services.
Hyper is a low-level networking library designed for building high-performance HTTP clients and servers. It provides a foundational toolkit for creating network services that leverage asynchronous execution and memory-safe data handling, supporting both HTTP/1 and HTTP/2 protocols. The library distinguishes itself through a protocol-agnostic architecture that separates transport logic from HTTP semantics. It utilizes a service-trait abstraction to decouple network logic from the underlying transport, enabling developers to inject custom middleware for request interception and response transfo
Hyper is a low-level HTTP networking library that runs on top of an async runtime like Tokio, not a runtime itself—it provides HTTP abstractions but lacks the work-stealing scheduler, timer, and async I/O primitives you would need from a genuine async runtime library.
Axum is a web framework for the Rust programming language designed for building scalable and high-performance backend services. It provides a modular, asynchronous programming model that centers on a declarative routing engine, allowing developers to map HTTP requests to handler functions using a type-safe API. The framework distinguishes itself through a robust request extraction system that leverages trait-based reflection to automatically parse and validate incoming data into strongly typed function arguments. By utilizing a standardized service abstraction, it enables the composition of m
Axum is a web framework that builds on top of an async runtime like Tokio, not a standalone async runtime library with its own I/O backend, scheduler, or primitives.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| tokio-rs/tokio | 32.3K | Rust | MIT | |
| monoio-rs/monoio | 5K | Rust | Apache-2.0 | |
| smol-rs/smol |
| 5K |
| Rust |
| Apache-2.0 |
| tokio-rs/tokio-uring | 1.5K | Rust | MIT |
| tokio-rs/mio | 7K | Rust | MIT |
| rust-lang/futures-rs | 5.9K | Rust | Apache-2.0 |
| hyperium/hyper | 15.9K | Rust | mit |
| tokio-rs/axum | 25K | Rust | mit |