---
title: "Chapter 23: Async Rust"
description: "The 5 lessons of chapter 23: Async Rust, in teaching order."
url: "https://learnrust.net/chapter-23/"
last_updated: "2026-06-13"
---

# Chapter 23: Async Rust

- [23.1 What async is, and when you want it](https://learnrust.net/chapter-23/what-async-is.md): The difference between IO-bound and CPU-bound work, threads versus tasks, and an honest account of when async is the right tool and when it isn't.
- [23.2 async/await and Futures](https://learnrust.net/chapter-23/async-await-and-futures.md): How async functions produce lazy Futures, what .await does, and why you need a runtime to make any of it actually run.
- [23.3 Using Tokio](https://learnrust.net/chapter-23/using-tokio.md): Adding the Tokio runtime, the #[tokio::main] attribute, spawning tasks, async sleep versus blocking sleep, and a small concurrent example.
- [23.4 Async pitfalls](https://learnrust.net/chapter-23/async-pitfalls.md): A field guide to where async bites: blocking the executor, the Send requirement on spawned tasks, and cancellation at await points.
- [23.x Chapter 23 summary and quiz](https://learnrust.net/chapter-23/chapter-23-summary-and-quiz.md): Review of when to use async, async/await and Futures, the Tokio runtime, and the main async pitfalls, with a conceptual exercise.

## Sitemap

See the full [sitemap](https://learnrust.net/sitemap.md) for all pages.
