# Tokio

57 Hacker News commenters recommended Tokio and 45 criticized it, November 2025 to November 2026. It was recommended in 12 of 13 months.

**Verdict:** Default Rust async runtime that people build on for its ecosystem and well-designed libraries; critics say it adds complexity and an ecosystem monoculture.

## Why people recommend it

- Default choice for async Rust (3 comments): "In pretty much every bit of code I've written both professionally and leisurely I have always used tokio." ([source](https://news.ycombinator.com/item?id=48017609)) "you'd probably just want to center on tokio and axum, then stick to the tokio ecosystem" ([source](https://news.ycombinator.com/item?id=48124235)) "pretty much the default if you aren't in a specific, resource constrained use case" ([source](https://news.ycombinator.com/item?id=48024302))
- Low latency and good performance (3 comments): "Tokio was not starved so handled network requests at low latency." ([source](https://news.ycombinator.com/item?id=49317845)) "Tokio was not starved so handled network requests at low latency" ([source](https://news.ycombinator.com/item?id=49319072)) "the performance of just using tokio is already pretty good" ([source](https://news.ycombinator.com/item?id=45789274))
- Clean and friendly with Axum (3 comments): "Tokio and Axum make it quite friendly, and depending on what you are connecting to it becomes super easy" ([source](https://news.ycombinator.com/item?id=48124524)) "the async models in rust (along with tokio/axum, etc) have been pretty nice and clean in practice" ([source](https://news.ycombinator.com/item?id=46355472)) "Tokio works well because Rust's ownership model overlays with tokio nicely." ([source](https://news.ycombinator.com/item?id=49723199))
- Well-designed, enjoyable code to read (3 comments): "libs like tokio and actix-web were so well-designed that I actually enjoyed reading the code in my free time" ([source](https://news.ycombinator.com/item?id=49130579)) "I'm both an Erlang programmer and a big fan of Tokio and Rust's async/await implementation" ([source](https://news.ycombinator.com/item?id=48930311)) "I'm a big fan of a lot of the things that the tokio project has built" ([source](https://news.ycombinator.com/item?id=48953279))

## What people warn about

- Complex, forces lifetime and trait issues (3 comments): "The particular implementation of async used by Tokio forces a litany of undesirable traits and lifetime issues into your application code." ([source](https://news.ycombinator.com/item?id=46130518)) "tokio does a whole-program transformation that does its most restrictive checking only after all local checks have been resolved" ([source](https://news.ycombinator.com/item?id=48004061)) "Tokio is very complex and work-stealing is arguably a very bad default in terms of development complexity" ([source](https://news.ycombinator.com/item?id=49385938))
- Heavy compile and dependency footprint (3 comments): "Pulling in Tokio makes your project compile an entire thread management system even if you're just compiling Hello World" ([source](https://news.ycombinator.com/item?id=48019927)) "Start with tokio. Please vend one dependency battery included, and vendor in/internalize everything, thanks." ([source](https://news.ycombinator.com/item?id=47622034)) "there are costs in portability and supply chain attack surface area when you bring in tokio" ([source](https://news.ycombinator.com/item?id=45781538))
- Ecosystem monoculture, poor executor interop (3 comments): "a motley bunch of libraries that are written to use particular modes of tokio that don't necessary play well together" ([source](https://news.ycombinator.com/item?id=47903672)) "rather than exposing a common interface for many executors, the Rust async ecosystem went with a Tokio monoculture" ([source](https://news.ycombinator.com/item?id=48937669)) "There are issues in particular with core traits for IO or Stream being defined in third-party libraries" ([source](https://news.ycombinator.com/item?id=48021569))
- Poor fit for some workloads (3 comments): "Tokio shares one buffer pool for all threads so as you scale to 100+ threads the whole thing grinds to a halt." ([source](https://news.ycombinator.com/item?id=49654684)) "Tokio especially is extremely widely used for all kinds of things it doesn't work well for." ([source](https://news.ycombinator.com/item?id=48930195)) "Tokio's API is not the right one for io_uring, buffer pools for reads changes everything." ([source](https://news.ycombinator.com/item?id=48348807))

## Alternatives hackers recommend

- [Akka](https://hackerapproved.com/p/akka.md): 12 recommend
- [ZIO](https://hackerapproved.com/p/zio.md): 11 recommend
- [Trio Python library](https://hackerapproved.com/p/trio.md): 10 recommend
- [core.async](https://hackerapproved.com/p/core-async.md): 9 recommend
- [gevent](https://hackerapproved.com/p/gevent.md): 7 recommend

## Cite as

Hacker Approved, "Tokio", https://hackerapproved.com/p/tokio/ (counts from 1,795,640 Hacker News comments, November 2025 to November 2026).
