// the find
tokio-rs/tokio
A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...
Tokio is the de facto async runtime for Rust — if you're writing a network service, CLI tool, or anything async in Rust, you're almost certainly using it. It provides the scheduler, I/O reactor, and async-aware primitives (channels, timers, locks) that Rust's async/await syntax requires but doesn't include. This is infrastructure, not a framework.
Work-stealing scheduler with genuine performance — the benchmarks in the repo are real and the numbers hold up in production. The ecosystem is unusually coherent: axum, hyper, tonic, tower, tracing all come from the same org and are designed to compose. LTS release policy with documented backport windows (1.47.x until Sept 2026, 1.51.x until March 2027) means you can pin a minor version and get security fixes without chasing releases. loom integration for testing concurrent code is genuinely rare — most async runtimes leave concurrency correctness testing entirely to you.
The learning cliff around cancellation is steep and poorly surfaced: dropping a future cancels it silently, which interacts badly with any code that assumes cleanup runs. tokio-util's CancellationToken helps, but it's in a separate crate and not prominently documented as the answer. The feature flag system (`features = ["full"]` vs individual flags) is footgun territory — binary size and compile times balloon if you don't audit it, and the docs don't warn you clearly enough. io_uring support exists but is opt-in, experimental, and Linux-only with no clear graduation path. The multi-crate workspace (tokio, tokio-util, tokio-stream, tokio-macros) means you often need to add multiple dependencies and match versions manually — there's no single meta-crate.