📌 项目地址:microsoft/RustTraining | ⭐ 14,428 颗星 | 🔧 Rust | 📜 MIT
先说清楚:这是一个“讲师手册”,不是“学生练习册”
仓库 microsoft/RustTraining 有 14,428 颗 Star。但如果你拉到终端跑 cargo build,什么都跑不起来——里面只有 Markdown 文件。
它的目标用户不是零基础初学者。README 写得很明确:Seven training courses covering Rust from different programming backgrounds, plus deep-dives on async, advanced patterns, and engineering practices.
换言之:这是给有经验的开发者准备的 Rust 进阶路线图,同时也是给培训讲师准备的教学素材。
结构:七本背景书 + 三本深潜书
七本基础入门书是按读者之前用的编程语言区分的——C++、Java、Go、C#、Python、JavaScript、还有“有系统编程经验但不用 Rust”的人。每本书不重新讲变量、函数、循环这些通识内容,而是直接把你已知的概念映射到 Rust 里的等价物。比如你写过 C++,那本入门书会拿 std::move 的语义对比 Rust 的所有权转移,而不是从零教你“什么是变量”。
读完之后,再进入三本深潜书:
- 异步编程:讲
async/await、Futuretrait、Pin、Waker的设计动机和用法。 - 高级模式:生命周期进阶(非词法生命周期、子类型推导)、
unsafe的正确使用规范、类型系统进阶(泛型关联类型、类型别名等)。 - 工程实践:测试策略、CI 配置建议、错误处理架构设计、多 crate 的组织方式。
这三本书不教“Rust 的 async 比 Node 好在哪里”,而是直接问:为什么自引用结构需要 Pin?Pin<Box<T>> 和 Pin<&mut T> 各自解决什么问题?怎么保证一个 unsafe 块在重构后仍然安全?
真正的价值:把散落的知识点织成一张网
Rust 生态里的好内容分布太散。我平时读完 Jon Gjengset 的流,再翻 withoutboats 的 async 博客,再跳到 fasterthanlime 的长文——每篇水平都不低,但缺少一个把它们串起来的次序。
微软的 README 列了一份很长的致谢名单,这里摘几个关键来源:
- The Rust Programming Language(官方书)——所有内容的基础
- Jon Gjengset 的 Crust of Rust 系列——深入 Rust 内部机制
- withoutboats 的博客——async 设计、Pin、Future 模型
- fasterthanlime (Amos)——从第一原理推导系统编程
- Mara Bos 的《Rust Atomics and Locks》——并发原语
- Aleksey Kladov (matklad)——rust-analyzer 的设计思路、API 设计、错误处理模式
- Niko Matsakis 的博客——编译器内部、borrow checker、Polonius
- Rust by Example 和 Rustonomicon——实用模式与 unsafe 深入
这些东西各自讲一个角落,难度也不均匀。这个仓库做的事:把它们按学习逻辑重组成连贯的文档。你去自己搜,时间花几倍不说,还可能漏掉关键话题。比如快慢路径问题(Fast/Slow Path),你可能读到某个 talk 偶尔提到,但很难单独搜到系统性的讲解。
谁该用,谁不该用
适合:
- 写过几百行 Rust,能写小工具,但对涉及生命周期的复杂结构或者说
Pin觉得棘手的人。 - 有 C++/Java/Go 背景的老手,想跳过基础语法直接用已知概念学 Rust。
- 公司内部做 Rust 培训的团队——可以把这套材料当讲义主干,自己补充课后练习和代码评审流程。
不适合:
- 零基础:请先读 Rust Book(免费在线),那里有做练习题的节奏和更温和的起步。
- 只想快速上手写项目的人:每一章都在讲原理,没有可编译的示例,没有通过 CI 验证的练习环境。
- 希望一篇文章解决所有疑问的人:这是一套系统学习的资料,不是 FAQ 或速查表。
不足
- 没有练习题或可运行的代码示例。只有讲解,看完不自己在终端写例子验证,很容易变成“好像看懂了但写不出来”。我每读一章都要在 VS Code 里建个小工程跑一遍。
- 不是权威参考。微软自己在 README 里写了免责声明:虽然尽力保证准确,但关键细节还得查官方文档和 Rust Reference。团队技术讨论时不能拿这套材料当唯一依据。
- 纯文档,无互动。没有搜索功能,没有版本对比,阅读体验取决于你的 Markdown 阅读器。
- 只有英文。英文阅读慢的人会累。
使用建议
- 根据背景选入门书(
books/目录下有按语言命名的文件),读完再进深潜。 - 每读完一章,自己开终端写个小例子验证。比如学到生命周期时,故意写一段有问题的代码看编译器报什么。
- 遇到不熟悉的术语,优先查官方文档和 Rust Reference。
- 如果做内部培训,用这套材料当讲义,自己补上练习环境、课后作业和代码评审流程。
14k Star 说明很多人认同它的价值,但 Star 数不等于学习效果——关键在于你愿不愿意一个个 Markdown 文件读过去,并在终端里验证自己理解的正确性。
许可与商标注意事项
- 代码(如果有)按 MIT License 授权;文档按 Creative Commons Attribution 4.0 International (CC-BY-4.0) 授权。
- 可以修改、分发,但注意微软商标的使用:不能暗示微软赞助,不能引起混淆。具体见 Microsoft’s Trademark & Brand Guidelines。