Book
The Impatient Programmer's Guide to Async Rust
From First Principles to Production
Most async Rust tutorials go one of two ways. Some explain how futures work but never get you to ship anything; the Tokio ones get you shipping but never tell you what actually runs your code. This series closes that gap by having you build the runtime yourself, piece by piece: the executor, the reactor, channels, cancellation, until nothing about it is hidden. Then you take those exact pieces into Tokio and write real async services, recognizing every part because you wrote it first.
Chapters
Chapter 1
Who Runs Your Rust Future? Hands-On Intro to Async Rust
Build the smallest Rust async runner and see how futures, polling, waking, and runtimes work together.
Chapter 2
Reasoning About Async Rust with State Machines
Build the state machine behind an async fn, then use that model to reason about common async bugs and compiler errors.
Roadmap
Where the series goes next
Next, the rest of the engine, Pin, an executor, real I/O, timers, channels, and cancellation, each paired with its Tokio version (spawn, join, select). Then you use it for real, building web services and handling the rough edges async hits in production.