Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

English Original

Async Rust:从 Future 到生产实践

讲师简介

  • Microsoft SCHIE(Silicon and Cloud Hardware Infrastructure Engineering)团队首席固件架构师
  • 在安全、系统编程(固件、操作系统、虚拟机监控器)、CPU 与平台架构以及 C++ 系统方面拥有丰富经验
  • 2017 年在 AWS EC2 开始使用 Rust,此后一直深度投入并持续使用这门语言

这是一本关于 Rust 异步编程的深度指南。不同于许多从 tokio::main 直接入门、对内部机制一笔带过的教程,本书从第一性原理展开:Future trait、轮询、状态机,然后逐步过渡到真实世界中的模式、运行时选型以及生产环境常见陷阱。

适合谁阅读

  • 能写同步 Rust,但对 async 仍感到困惑的 Rust 开发者
  • 熟悉 C#、Go、Python 或 JavaScript 中 async/await,但不了解 Rust 模型的开发者
  • Future is not SendPin<Box<dyn Future>> 或“程序为什么卡住了”这些问题困扰过的人

前置知识

你应当熟悉以下内容:

  • 所有权、借用和生命周期
  • Trait 与泛型(包括 impl Trait
  • 使用 Result<T, E>? 操作符
  • 基础多线程(std::thread::spawnArcMutex

不需要事先具备 async Rust 经验。

如何使用本书

第一次阅读建议按顺序进行。 第一部分和第二部分是逐层递进的集。每章都包含:

标记含义
🟢初级:基础概念
🟡中级:依赖前文内容
🔶高级:深入内部机制或生产模式

每章包括:

  • 顶部的 “你将学到什么” 区块
  • 适合视觉学习者的 Mermaid 图示
  • 带隐藏答案的 内联练习
  • 总结核心概念的 关键要点
  • 指向相关章节的 交叉引用

学习节奏建议

章节主题建议时间检查点
1-5Async 如何工作6-8 小时你可以解释 FuturePollPin,以及 Rust 为什么没有内建运行时
6-10生态系统6-8 小时你可以手写 future、选择运行时并使用 tokio API
11-13生产级 Async6-8 小时你可以编写包含流、正确错误处理和优雅关闭能力的生产级异步代码
综合项目聊天服务器4-6 小时你已经构建出整合所有概念的真实异步应用

预计总时长:22-30 小时

练习建议

每个内容章节都包含内联练习。综合项目(第 16 章)会把所有内容整合进一个项目。为了获得最佳学习效果:

  1. 先做题,再看答案,真正的学习往往发生在卡住的时候
  2. 手敲代码,不要复制粘贴,Rust 语法需要肌肉记忆
  3. 运行每个示例,可以先用 cargo new async-exercises 边学边试

目录

第一部分:Async 如何工作

第二部分:生态系统

第三部分:生产级 Async

附录