附录 D · 学习资源与文档索引
本附录是本站的外部资源总入口:官方文档、中文资料、练习平台、书单、博客与工具链, 每条都给出一句话说明 + 适合什么时候读 + 语言/是否官方。
链接核对时间:2026-09(当前环境
rustc 1.98.1/cargo 1.98.1,Rust 2024 edition)。 ⚠️ 提醒:外部链接可能改版或失效。若某条打不开,请以官方站点 (rust-lang.org、doc.rust-lang.org)内搜索为准。 本附录只收录已确认的 URL;少数资源无法确认当前地址,已明确标注「未收录 URL」并说明原因, 请自行在官方站搜索,绝不臆造链接。
标注意义
| 标记 | 含义 |
|---|---|
| 官方 | 由 Rust 项目/团队(rust-lang)维护 |
| 社区 | 由社区或个人维护,但口碑稳定 |
| 中 / 英 | 内容语言;「中英」表示有中文译版也有英文原版 |
| 🟢 免费 | 完全免费阅读/使用 |
| 💰 付费 | 需要购买(可能有免费章节或在线版) |
D.1 官方资源
D.1.1 语言与教程
| 名称 | URL | 一句话说明 | 适合什么时候读 | 语言/性质 |
|---|---|---|---|---|
| The Rust Programming Language(The Book) | https://doc.rust-lang.org/book/ | 官方唯一「权威入门书」,从所有权讲到并发与模式匹配 | 第一次系统学 Rust;也是本站的对照母本 | 英 / 官方 🟢 |
| Rust 程序设计语言(中文版,社区译) | https://rustwiki.org/zh-CN/book/ | 上面那本书的中文译本(含附录与术语表) | 英文吃力时对照阅读;术语可两版互查 | 中 / 社区 🟢 |
| Rust by Example | https://doc.rust-lang.org/rust-by-example/ | 以「可运行的小例子」组织全部语法点 | 已看懂概念、想立刻看能跑的代码时 | 英 / 官方 🟢 |
| Rust Cookbook | https://rust-lang-nursery.github.io/rust-cookbook/ | 按「任务」组织(文件、网络、日期、并行)的配方集 | 要解决一个具体工程小问题时直接抄配方 | 英 / 官方(nursery)🟢 |
| Rust 2024 Edition Guide | https://doc.rust-lang.org/edition-guide/ | 逐条列出 2015/2018/2021/2024 各 edition 的差异与迁移方法 | 从旧 edition 升级,或想确认「2024 到底改了什么」 | 英 / 官方 🟢 |
| The Async Book | https://rust-lang.github.io/async-book/ | 官方异步编程指南:Future、Pin、执行器、async/await | 学完基础、准备做 async 服务之前 | 英 / 官方 🟢 |
| Rust Error Index | https://doc.rust-lang.org/error_codes/ | 全部 E0xxx 错误码的官方解释与最小复现 | 被某条报错卡住时,先查错误码再搜 | 英 / 官方 🟢 |
| Standard Library API 文档 | https://doc.rust-lang.org/std/ | 标准库权威参考,含每个方法的复杂度与示例 | 每天都要开着的标签页;附录 C 的签名来源 | 英 / 官方 🟢 |
| The Rust Reference | https://doc.rust-lang.org/reference/ | 语言规格级参考:语法、类型布局、行为定义 | 想确认「这是规范还是编译器巧合」时 | 英 / 官方 🟢 |
| Rust Playground | https://play.rust-lang.org/ | 浏览器内编译运行,可切 release 模式、看 MIR/汇编 | 验证小片段、分享复现,不必本地建工程 | 英 / 官方 🟢 |
| docs.rs | https://docs.rs/ | 自动为 crates.io 上每个包构建的 API 文档 | 查第三方 crate 的版本化文档(比 README 准) | 英 / 官方基础设施 🟢 |
| crates.io | https://crates.io/ | 官方包仓库,看下载量、版本、依赖与许可证 | 选型时;也是 cargo add 的数据源 | 英 / 官方 🟢 |
💡 建议顺序:The Book 打地基 → Rust by Example 巩固语法 → 需要干活时查 Cookbook, 卡在报错时查 Error Index,任何不确定的签名查 std 文档。这四件套能覆盖 90% 的日常需求。
D.1.2 工具链与工程
| 名称 | URL | 一句话说明 | 适合什么时候读 | 语言/性质 |
|---|---|---|---|---|
| The Cargo Book | https://doc.rust-lang.org/cargo/ | 官方 Cargo 手册:manifest 全部字段、子命令、特性、工作区 | 配置 Cargo.toml、搭工作区、发布包时 | 英 / 官方 🟢 |
| rustup 手册 | https://rust-lang.github.io/rustup/ | 工具链管理器文档:安装、切换 toolchain、代理命令 | 要装 nightly、切版本、配交叉编译目标时 | 英 / 官方 🟢 |
| Rustup 组件列表 | https://rust-lang.github.io/rustup/concepts/components.html | rustup component add 可装哪些组件(clippy/rustfmt/miri…) | 想启用某组件但不确定名字时 | 英 / 官方 🟢 |
| Rustup 平台支持列表 | https://doc.rust-lang.org/rustc/platform-support.html | 三级(tier 1/2/3)平台支持矩阵与 target 三元组 | 交叉编译、嵌入式、确认某平台是否被保证支持 | 英 / 官方 🟢 |
| Rust 版本发布节奏 | https://forge.rust-lang.org/ | Rust Forge:发布列车(release train)与流程说明 | 想知道「下一个稳定版什么时候来」、stable/beta/nightly 怎么流转 | 英 / 官方 🟢 |
发布节奏两条铁律(写作时点,1.98.1):
- 每 6 周发布一个稳定小版本(
1.98→1.99→1.100), 采用「发布列车」模型:nightly 先进 beta,6 周后进 stable,从不跳票(跳票的是特性,不是日期)。 - 每 3 年发布一个 edition(2015 → 2018 → 2021 → 2024 → 下一个为 2027 前后), edition 只在新建 crate 时选择,同一工程内不同 crate 可用不同 edition 并互相依赖 —— 所以升级 edition 是逐 crate 渐进的,不是「全生态大迁移」。
🚀 进阶:
rustup支持 per-directory 工具链(rust-toolchain.toml)。 团队协作时把工具链版本写进仓库,可避免「我这儿能编译」的扯皮:
toml
# rust-toolchain.toml:进入该目录时 rustup 自动切换
[toolchain]
channel = "1.98.1"
components = ["rustfmt", "clippy"]
targets = ["x86_64-pc-windows-msvc"]D.1.3 深入机制与 unsafe
| 名称 | URL | 一句话说明 | 适合什么时候读 | 语言/性质 |
|---|---|---|---|---|
| The Rustonomicon | https://doc.rust-lang.org/nomicon/ | 《死灵之书》:写 unsafe 代码必须知道的 UB、别名、Vec 实现细节 | 要写 unsafe、FFI、数据结构之前必读 | 英 / 官方 🟢 |
| Unsafe Code Guidelines | https://rust-lang.github.io/unsafe-code-guidelines/ | 社区/官方协作定义「unsafe 代码的合法边界」与术语表 | 想知道某操作是否真的 UB 时 | 英 / 官方仓库 🟢 |
| Rust API Guidelines | https://rust-lang.github.io/api-guidelines/ | 公开 crate 的设计惯例清单(命名、trait 实现、可预见性) | 准备发布库给别人用时逐条自查 | 英 / 官方 🟢 |
| Rust Design Patterns | https://rust-unofficial.github.io/patterns/ | 社区整理的惯用法、反模式与「Rust 里如何替代 OOP 模式」 | 写了一段能跑但很别扭的代码,想找地道写法时 | 英 / 社区 🟢 |
| Clippy lint 列表 | https://rust-lang.github.io/rust-clippy/master/index.html | 全部 lint 的分组说明、反例与正例 | 想搞懂某条 clippy 建议为什么提;也用于挑选 lint | 英 / 官方 🟢 |
| Rust RFC 仓库 | https://github.com/rust-lang/rfcs | 语言与工具链的提案与设计讨论记录 | 想搞清「为什么 Rust 这样设计」、查某特性提案状态 | 英 / 官方 🟢 |
| Rust Internals 论坛 | https://internals.rust-lang.org/ | 语言设计讨论区(编译器、类型系统、库演进) | 想参与或追踪设计层面的争论 | 英 / 官方 🟢 |
| Rust Users Forum | https://users.rust-lang.org/ | 官方用户问答论坛:语法求助、工程实践、生态讨论 | 被某问题卡住、想搜「别人是否也遇到过」时 | 英 / 官方 🟢 |
| Rust Blog | https://blog.rust-lang.org/ | 每个版本发布公告 + 重要变更说明 | 每次 rustup update 后花 3 分钟看变更 | 英 / 官方 🟢 |
| This Week in Rust | https://this-week-in-rust.org/ | 每周汇总 crate 动态、文章、Crate of the Week、招聘 | 想持续跟进生态又不想刷社交媒体 | 英 / 官方团队 🟢 |
| Rust 官方 FAQ | https://www.rust-lang.org/faq | 回答「为什么没有 GC / 为什么编译慢 / 谁在用」等常见疑问 | 评估是否引入 Rust、回答同事质疑时 | 英 / 官方 🟢 |
⚠️ 提醒:RFC 仓库与 Internals 论坛里的设计不一定已实现。 判断某特性能否使用,永远以「stable 文档里有没有」和「
rustc --version够不够新」为准, 而不是以 RFC 是否合并为准。
未收录 URL 的官方资源(可确认名称,但当前地址无法确证,请在官方站搜索):
| 名称 | 说明 | 搜索建议 |
|---|---|---|
| Rust 官方社区页 | 汇总所有官方渠道(论坛、Discord、Zulip、Reddit、Matrix) | 直接访问 https://www.rust-lang.org/community |
D.2 中文资源
| 名称 | URL | 一句话说明 | 适合什么时候读 | 性质 |
|---|---|---|---|---|
| Rust 语言圣经(course.rs) | https://course.rs/ | 目前最系统的中文原创 Rust 教程,含「易混淆概念」与练习(访问时会 301 跳转到站方新域名 beatai.org,属正常现象) | 中文环境下主力学习;也可作为 The Book 的补充 | 社区 🟢 |
| Rust 中文文档站(rustwiki.org) | https://rustwiki.org/ | 中文文档聚合入口:官方书、参考手册、Cargo 手册、FAQ 等 | 想在一个站点里找多本中文文档时 | 社区 🟢 |
| Rust 程序设计语言 中文版 | https://rustwiki.org/zh-CN/book/ | The Book 的中文译本(在线) | 与英文原版对照读 | 社区 🟢 |
| Rust 参考手册 中文版 | https://rustwiki.org/zh-CN/reference/ | The Reference 的中文译本(语法与行为规范) | 需要精确的语法/语义定义,但读英文规范吃力时 | 社区 🟢 |
| Rust FAQ 中文版 | https://rustwiki.org/zh-CN/faq/ | 官方 FAQ 的中文版 | 评估与答疑场景 | 社区 🟢 |
| kaisery/trpl-zh-cn | https://github.com/KaiserY/trpl-zh-cn | The Book 中文翻译的源码仓库(可提 issue、跟进新版本) | 发现译版与英文版不同步时,来查最新进度 | 社区 🟢 |
| Rust 中文社区(GitHub 组织 / Telegram) | https://github.com/rust-lang-cn | 中文翻译与社区项目集合(多个中文文档的源头) | 想参与翻译或找中文资料仓库 | 社区 🟢 |
| rust-by-practice(origin-brain/rust-by-practice) | https://github.com/origin-brain/rust-by-practice | 《Rust 语言圣经》配套练习册,含大量「填坑」式习题;仓库已从 sunface 名下转移至 origin-brain 组织,旧链接可自动跳转 | 想动手做题而不是只读 | 社区 🟢 |
| Rust 圣经在线练习(practice.course.rs) | https://practice.course.rs/ | 上面练习册的在线阅读版(同样会跳转到 beatai.org 镜像域名) | 不想 clone 仓库、直接在网页上刷题时 | 社区 🟢 |
| Comprehensive Rust 中文版 | https://google.github.io/comprehensive-rust/zh-CN/ | Google Android 团队出品的 4~5 天集中课程官方中文版(基础 + 并发 + 裸机等专题) | 已有编程经验、想几天内过一遍全貌时 | 官方(Google)/ 🟢 |
| Rust 标准库 API 中文文档 | https://rustwiki.org/zh-CN/std/ | std API 的社区中文译版(基于 1.71,版本滞后于英文) | 英文文档读得慢时的过渡;签名与行为最终以英文 std 为准 | 社区 🟢 |
| Tour of Rust 简体中文 | https://tourofrust.com/00_zh-cn.html | 一页一个特性的「Rust 之旅」(另有繁体中文等 20 种语言版本) | 碎片时间轻松翻阅、建立直觉 | 社区 🟢 |
| sunface/rust-course | https://github.com/sunface/rust-course | course.rs 的源码仓库,可离线阅读 | 网络不稳或想本地检索全文 | 社区 🟢 |
💡 对照:中文资料的优势是「讲清了英文里一带而过的坑」, 劣势是更新滞后(尤其 async、edition 2024 相关内容)。 推荐策略:概念跟中文,签名与行为跟英文官方。
D.3 练习平台
| 名称 | URL | 难度 / 侧重 | 说明 |
|---|---|---|---|
| Rustlings | https://github.com/rust-lang/rustlings | 入门 / 语法与所有权 | 官方维护的「小练习 + 修编译错误」合集,cargo install rustlings 后本地跑。零基础第一站 |
| rust-by-practice | https://github.com/origin-brain/rust-by-practice | 入门~中级 / 中文、题量极大 | 中文练习册,题目分「简单/中等/困难」,与 course.rs 章节对应;在线版见 D.2 的 practice.course.rs 🟢 |
| 100 Exercises to Learn Rust | https://github.com/JetBrains/100-exercises-to-learn-rust | 入门 / 工程化、渐进式 | JetBrains 出品,从「能编译」推到「能测试、能模块化」,附带完整讲解 |
| Exercism · Rust track | https://exercism.org/tracks/rust | 入门~中级 / 有导师点评 | 免费、带自动化测试与人工 mentoring,适合养成写测试的习惯 🟢 |
| Advent of Code | https://adventofcode.com/ | 中级 / 算法与解析 | 每年 12 月 25 天两题,社区有大量 Rust 解法可对照。适合练「解析输入 + 迭代器链」 |
| Codewars | https://www.codewars.com/ | 入门~中级 / 碎片时间 | 短小题,按段位分级,适合每天 15 分钟(筛选 Rust 语言)🟢 |
| LeetCode | https://leetcode.com/ | 中级 / 面试算法 | 有 Rust 支持但生态弱于 C++/Java;建议用来练「链表/树在 Rust 里怎么写」(Option<Box<Node>>) |
| Rust Playground | https://play.rust-lang.org/ | 任意 / 快速验证 | 不是题库,但配合以上任何平台做不依赖 crate 的验证最方便 🟢 |
🚀 进阶:练「读代码说编译是否通过」比刷题更能提升借用检查器直觉 —— 本站每章都配了这类题型(见各章「本章练习」)。
D.4 视频与课程
| 名称 | URL | 语言 | 是否免费 | 侧重 |
|---|---|---|---|---|
| Crust of Rust(Jon Gjengset) | https://www.youtube.com/playlist?list=PLqbS7AVVErFiWDOAVrPt7aYmnuuOLYvOa | 英 | 🟢 免费 | 每次直播实现一个标准库/生态组件(Arc、迭代器、BufReader),理解「为什么这样设计」的最佳视频 |
| Jon Gjengset 频道 | https://www.youtube.com/@jonhoo | 英 | 🟢 免费 | 除 Crust of Rust 外还有大量 live coding 与论文讲解 |
| Let's Get Rusty | https://www.youtube.com/@letsgetrusty | 英 | 🟢 免费 | 短小精悍的概念讲解与「Rust 入门 20 分钟」类视频,通勤友好 |
| fasterthanlime 的文章 | https://fasterthanli.me/ | 英 | 🟢 免费 | 超长深度文章(如《A half-hour to learn Rust》《Rust 中的字符串》),写作质量极高;有网站而非视频 |
💡 建议:视频只用来打通某个卡点(例如
Pin、生命周期、async 运行期), 不要靠视频系统学习 —— 文本资料可检索、可精读、可复制代码,效率更高。
D.5 书单
| 书名 | 作者/出版 | URL | 难度 | 什么时候读 |
|---|---|---|---|---|
| Programming Rust(第 2 版) | Blandy / Orendorff / Tindall,O'Reilly | 无官方免费版,请搜「Programming Rust 2nd edition O'Reilly」 | 入门~中级 💰 | 想要一本纸质系统教材、且偏爱 O'Reilly 风格时 |
| Rust for Rustaceans | Jon Gjengset,No Starch | 无官方免费版,请搜「Rust for Rustaceans」 | 中级~高级 💰 | 已会写 Rust,想搞懂类型系统、trait、并发、unsafe 的深层心智模型 |
| Rust Atomics and Locks | Mara Bos,O'Reilly | https://marabos.nl/atomics/ | 高级 🟢 在线免费 | 写多线程/锁/无锁结构之前必读;作者是 std 同步原语维护者 |
| Zero To Production In Rust | Luca Palmieri | https://www.zero2prod.com/ | 中级 💰(部分章节免费) | 想完整体验「从零到上线的 async Web 后端」全流程 |
| Rust in Action | Tim McNamara,Manning | 无官方免费版,请搜「Rust in Action Manning」 | 入门~中级 💰 | 偏爱「边做项目边学」,喜欢底层(内存、网络、CPU)视角 |
| Effective Rust | David Drysdale | https://effective-rust.com/ | 中级 🟢 在线免费 | 想快速吸收「35 条地道写法与反模式」,读完立刻能改掉坏习惯 |
💡 顺序建议: 入门用 The Book / 中文书 → 巩固用 Effective Rust(免费、性价比最高)→ 并发深入用 Rust Atomics and Locks(免费)→ 架构视角用 Rust for Rustaceans。
D.6 博客与深入阅读
| 博主/站点 | URL | 为什么值得读 |
|---|---|---|
| without.boats(withoutboats) | https://without.boats/blog/ | async/await 与 Pin 的主要设计者之一,讲设计取舍的第一手视角;文章少但每篇都值得精读 |
| fasterthanlime(Amos) | https://fasterthanli.me/ | 极长、极细的实战拆解(依赖树、二进制体积、生命周期可视化),读完对 Rust 的理解会上一个台阶 |
| Niko Matsakis 的博客 | https://smallcultfollowing.com/babysteps/ | 借用检查器与 trait 系统的设计者,讲 Polonius、impl Trait、类型系统的演化 |
| Manish Goregaokar 的博客 | https://manishearth.github.io/ | 标准库/Unicode/编译器内部话题,写作清晰,常解释「标准库为什么这样定」 |
| Tokio 博客 | https://tokio.rs/blog | Tokio 版本发布与技术解析(runtime、tracing、select! 语义) |
| Rust Blog(官方) | https://blog.rust-lang.org/ | 版本公告与语言变更的权威来源(见 D.1.3) |
| This Week in Rust | https://this-week-in-rust.org/ | 每周生态速览,适合替代社交媒体的信息流(见 D.1.3) |
⚠️ 提醒:博客里的写法可能针对旧版本,也可能用到 nightly。 看到感兴趣的点,务必去 docs.rs / std 文档确认当前 stable 是否支持。
D.7 工具与生态
D.7.1 必备工具(装完就一直在用)
| 工具 | URL | 一句话说明 |
|---|---|---|
| rust-analyzer | https://rust-analyzer.github.io/ | 官方 LSP 实现:补全、跳转、内联类型提示、cargo check 集成,编辑器体验的全部来源 |
| rustfmt | https://github.com/rust-lang/rustfmt | 官方格式化器(cargo fmt),结束风格争论 |
| clippy | https://github.com/rust-lang/rust-clippy | 官方 lint 集合(cargo clippy),能揪出大量「能跑但不对」的写法 |
| bacon | https://dystroy.org/bacon/ | 后台持续跑 cargo check/clippy/test 并在终端显示结果,改一行就自动反馈 |
D.7.2 测试、覆盖率与验证
| 工具 | URL | 一句话说明 |
|---|---|---|
| cargo-nextest | https://nexte.st/ | 更快的测试运行器(cargo nextest run),失败隔离、输出更可读 |
| criterion | https://bheisler.github.io/criterion.rs/book/ | 统计严谨的基准测试库,出图表与置信区间;写 [[bench]] 的标准选择 |
| proptest | https://proptest-rs.github.io/proptest/ | 属性测试(property testing):自动生成输入并缩小到最小反例 |
| miri | https://github.com/rust-lang/miri | 在 MIR 层解释执行,检测 UB(越界、未对齐、数据竞争);需 nightly |
| loom | https://github.com/tokio-rs/loom | 并发模型检查器:穷举线程交错来验证无锁/同步代码 |
D.7.3 依赖治理与构建加速
| 工具 | URL | 一句话说明 |
|---|---|---|
| cargo-deny | https://embarkstudios.github.io/cargo-deny/ | 统一检查依赖的许可证、安全公告、来源与重复版本 |
| cargo-audit | https://rustsec.org/ | 对照 RustSec 漏洞库审计 Cargo.lock,CI 里必备 |
| sccache | https://github.com/mozilla/sccache | 编译缓存(本地/云端),CI 与 monorepo 里显著提速 |
| cross | https://github.com/cross-rs/cross | 用容器做交叉编译,避免手配 linker 与 sysroot |
D.7.4 宏、FFI 与跨平台
| 工具 | URL | 一句话说明 |
|---|---|---|
| cargo-expand | https://github.com/dtolnay/cargo-expand | 展开宏与 derive 后的真实代码,调试宏的唯一实用手段 |
| bindgen | https://rust-lang.github.io/rust-bindgen/ | 从 C/C++ 头文件自动生成 Rust FFI 绑定 |
| pyo3 | https://pyo3.rs/ | 用 Rust 写 Python 扩展模块,或从 Rust 调用 Python |
| wasm-pack | https://rustwasm.github.io/wasm-pack/ | 把 Rust 编译成 npm 可用的 WASM 包(面向 JS 生态) |
| trunk | https://trunkrs.dev/ | Rust/WASM 前端应用打包与开发服务器(相当于 WASM 版的 Vite) |
D.7.5 性能与可观测
| 工具 | URL | 一句话说明 |
|---|---|---|
| cargo-flamegraph | https://github.com/flamegraph-rs/flamegraph | 一键生成火焰图(cargo flamegraph),找性能热点最快的路 |
| cargo-llvm-cov | https://github.com/taiki-e/cargo-llvm-cov | 基于 LLVM 源码的覆盖率(cargo llvm-cov --html),比 tarpaulin 更准 |
D.7.6 其他常被提到的工具(名称可确认,URL 请以官方站为准)
| 工具 | 说明 | 检索建议 |
|---|---|---|
cargo-watch | 文件变化时自动重跑命令 | 部分功能已被 bacon 取代,仍可通过 crates.io 搜索 cargo-watch |
cargo-udeps | 找出 Cargo.toml 里未被使用的依赖 | 需 nightly;在 crates.io 搜索 cargo-udeps |
cargo-semver-checks | 检查版本升级是否引入破坏性变更 | 在 crates.io 搜索 cargo-semver-checks |
⚠️ 提醒:上表三类工具的 URL 指向的是 crates.io 搜索页(稳定可达), 而不是我无法确证的项目主页。安装一律用
cargo install <名字>,以 crates.io 上的当前版本为准。
D.8 本站资源的使用建议
三条路径给出「章节顺序 × 配套资源」的组合。章节顺序与学习路线一章一致,这里补充每一步该配合本附录的哪些资源。
路径一 · 快速上手写小工具(目标:2~3 周内能写出可用的 CLI)
- 学习路线与环境准备 —— 先明确目标与前置,再动手装环境。
- 环境搭建与工具链 —— 装好 rustup、跑通
cargo run。 - 变量与流程控制 —— 语法骨架,配合附录 C.1 速查。
- 所有权与借用 —— 不能跳过,这是后面一切的地基。
- 本附录 D.3 练习平台 的 Rustlings + D.1.1 的 Rust by Example —— 边读边练。
- 附录 C.8 文件与 IO 与 C.9 Cargo 命令 —— 立刻开始写「读写文件 + 跑子进程 + 解析参数」的小工具。
- 用 D.1.1 的 Rust Cookbook 抄配方,用
clap处理参数,把工具做完整。
路径二 · 系统学习一门语言(目标:理解设计取舍,能读懂标准库源码)
- 环境搭建与工具链 → 建立可复现的环境与
rust-toolchain.toml。 - 按顺序读完 变量与流程控制 → 所有权 → 结构体与 trait → 集合与迭代器 → 错误处理 → 泛型与生命周期 → 智能指针与闭包,不要跳章; 每章做「本章练习」,特别是「读代码说编译是否通过」题型。
- 同步精读 D.1.1 的 The Book 对应章节,中文吃力时对照 D.2 的中文译本。
- 用 附录 C.10 常用 trait 与 C.6 Option/Result 反复查,直到不用查。
- 读 D.5 书单 里的 Effective Rust(免费)与 Rust for Rustaceans,把「能写」升级为「写得地道」。
- 读 D.1.3 的 The Rustonomicon + Rust API Guidelines,具备读标准库源码与发布 crate 的能力。
路径三 · 面向 async Web 后端(目标:能独立交付一个可上线的服务)
- 先走完路径二的第 1~4 步(所有权与 trait 是 async 的前置条件,不要跳过)。
- 并发编程 —— 线程、
Send/Sync、Arc<Mutex<T>>, 配合附录 C.7 速查。 - 异步编程 ——
async/await与 Tokio 运行期; 再读本附录 D.1.1 的 The Async Book,搞清Future是惰性的、Pin为什么存在。 - D.5 书单 的 Rust Atomics and Locks(免费在线)—— 理解同步原语与内存序,避免写出「能跑但有竞态」的代码。
- 本附录 D.7.2 的
cargo-nextest+loom+miri—— 给并发代码上保险。 - 跟做 Zero To Production In Rust(D.5),并用 D.7.3 的
cargo-deny/cargo-audit接入 CI。 - 用 工程化与常用 crate 与 测试、性能与 unsafe 收尾。
🧠 原理:这三条路径共享同一段地基(路径二第 1~4 步)。 差别只在于「地基之后往哪走」:路径一往「马上能用的工具」走, 路径二往「语言机制与生态贡献」走,路径三往「异步运行期与并发正确性」走。 因此无论选哪条,所有权那一章都不能跳。
延伸阅读
- 附录 C · 语法与标准库速查卡 —— 本附录所引用速查表的所在地,边写代码边查。
- Rust 官方网站(英文,官方)—— 所有官方资源的根入口,链接失效时从这里重新找到。
- Rust 官方社区页(英文,官方)—— 论坛、Discord、Zulip 等全部官方渠道。
⚠️ 最后提醒:本附录的链接核对时间为 2026 年(基准
rustc 1.98.1)。 官方文档结构偶尔会调整(例如 The Book 的章节编号、Cargo Book 的页面路径), 若某条 URL 失效,请在 https://doc.rust-lang.org/ 或 https://www.rust-lang.org/ 内搜索关键词。 中文资源更新通常滞后于英文原版,遇到冲突以英文官方为准。