Skip to content

附录 D · 学习资源与文档索引

本附录是本站的外部资源总入口:官方文档、中文资料、练习平台、书单、博客与工具链, 每条都给出一句话说明 + 适合什么时候读 + 语言/是否官方

链接核对时间:2026-09(当前环境 rustc 1.98.1 / cargo 1.98.1,Rust 2024 edition)。 ⚠️ 提醒:外部链接可能改版或失效。若某条打不开,请以官方站点 (rust-lang.orgdoc.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 Examplehttps://doc.rust-lang.org/rust-by-example/以「可运行的小例子」组织全部语法点已看懂概念、想立刻看能跑的代码英 / 官方 🟢
Rust Cookbookhttps://rust-lang-nursery.github.io/rust-cookbook/按「任务」组织(文件、网络、日期、并行)的配方集要解决一个具体工程小问题时直接抄配方英 / 官方(nursery)🟢
Rust 2024 Edition Guidehttps://doc.rust-lang.org/edition-guide/逐条列出 2015/2018/2021/2024 各 edition 的差异与迁移方法从旧 edition 升级,或想确认「2024 到底改了什么」英 / 官方 🟢
The Async Bookhttps://rust-lang.github.io/async-book/官方异步编程指南:FuturePin、执行器、async/await学完基础、准备做 async 服务之前英 / 官方 🟢
Rust Error Indexhttps://doc.rust-lang.org/error_codes/全部 E0xxx 错误码的官方解释与最小复现被某条报错卡住时,先查错误码再搜英 / 官方 🟢
Standard Library API 文档https://doc.rust-lang.org/std/标准库权威参考,含每个方法的复杂度与示例每天都要开着的标签页;附录 C 的签名来源英 / 官方 🟢
The Rust Referencehttps://doc.rust-lang.org/reference/语言规格级参考:语法、类型布局、行为定义想确认「这是规范还是编译器巧合」时英 / 官方 🟢
Rust Playgroundhttps://play.rust-lang.org/浏览器内编译运行,可切 release 模式、看 MIR/汇编验证小片段、分享复现,不必本地建工程英 / 官方 🟢
docs.rshttps://docs.rs/自动为 crates.io 上每个包构建的 API 文档查第三方 crate 的版本化文档(比 README 准)英 / 官方基础设施 🟢
crates.iohttps://crates.io/官方包仓库,看下载量、版本、依赖与许可证选型时;也是 cargo add 的数据源英 / 官方 🟢

💡 建议顺序:The Book 打地基 → Rust by Example 巩固语法 → 需要干活时查 Cookbook, 卡在报错时查 Error Index,任何不确定的签名查 std 文档。这四件套能覆盖 90% 的日常需求。

D.1.2 工具链与工程

名称URL一句话说明适合什么时候读语言/性质
The Cargo Bookhttps://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.htmlrustup 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):

  1. 每 6 周发布一个稳定小版本(1.981.991.100), 采用「发布列车」模型:nightly 先进 beta,6 周后进 stable,从不跳票(跳票的是特性,不是日期)。
  2. 每 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 Rustonomiconhttps://doc.rust-lang.org/nomicon/《死灵之书》:写 unsafe 代码必须知道的 UB、别名、Vec 实现细节要写 unsafe、FFI、数据结构之前必读英 / 官方 🟢
Unsafe Code Guidelineshttps://rust-lang.github.io/unsafe-code-guidelines/社区/官方协作定义「unsafe 代码的合法边界」与术语表想知道某操作是否真的 UB 时英 / 官方仓库 🟢
Rust API Guidelineshttps://rust-lang.github.io/api-guidelines/公开 crate 的设计惯例清单(命名、trait 实现、可预见性)准备发布库给别人用时逐条自查英 / 官方 🟢
Rust Design Patternshttps://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 Forumhttps://users.rust-lang.org/官方用户问答论坛:语法求助、工程实践、生态讨论被某问题卡住、想搜「别人是否也遇到过」时英 / 官方 🟢
Rust Bloghttps://blog.rust-lang.org/每个版本发布公告 + 重要变更说明每次 rustup update 后花 3 分钟看变更英 / 官方 🟢
This Week in Rusthttps://this-week-in-rust.org/每周汇总 crate 动态、文章、Crate of the Week、招聘持续跟进生态又不想刷社交媒体英 / 官方团队 🟢
Rust 官方 FAQhttps://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-cnhttps://github.com/KaiserY/trpl-zh-cnThe 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-coursehttps://github.com/sunface/rust-coursecourse.rs 的源码仓库,可离线阅读网络不稳或想本地检索全文社区 🟢

💡 对照:中文资料的优势是「讲清了英文里一带而过的坑」, 劣势是更新滞后(尤其 async、edition 2024 相关内容)。 推荐策略:概念跟中文,签名与行为跟英文官方


D.3 练习平台

名称URL难度 / 侧重说明
Rustlingshttps://github.com/rust-lang/rustlings入门 / 语法与所有权官方维护的「小练习 + 修编译错误」合集,cargo install rustlings 后本地跑。零基础第一站
rust-by-practicehttps://github.com/origin-brain/rust-by-practice入门~中级 / 中文、题量极大中文练习册,题目分「简单/中等/困难」,与 course.rs 章节对应;在线版见 D.2 的 practice.course.rs 🟢
100 Exercises to Learn Rusthttps://github.com/JetBrains/100-exercises-to-learn-rust入门 / 工程化、渐进式JetBrains 出品,从「能编译」推到「能测试、能模块化」,附带完整讲解
Exercism · Rust trackhttps://exercism.org/tracks/rust入门~中级 / 有导师点评免费、带自动化测试与人工 mentoring,适合养成写测试的习惯 🟢
Advent of Codehttps://adventofcode.com/中级 / 算法与解析每年 12 月 25 天两题,社区有大量 Rust 解法可对照。适合练「解析输入 + 迭代器链」
Codewarshttps://www.codewars.com/入门~中级 / 碎片时间短小题,按段位分级,适合每天 15 分钟(筛选 Rust 语言)🟢
LeetCodehttps://leetcode.com/中级 / 面试算法有 Rust 支持但生态弱于 C++/Java;建议用来练「链表/树在 Rust 里怎么写」(Option<Box<Node>>
Rust Playgroundhttps://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 Rustyhttps://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 RustaceansJon Gjengset,No Starch无官方免费版,请搜「Rust for Rustaceans」中级~高级 💰已会写 Rust,想搞懂类型系统、trait、并发、unsafe 的深层心智模型
Rust Atomics and LocksMara Bos,O'Reillyhttps://marabos.nl/atomics/高级 🟢 在线免费写多线程/锁/无锁结构之前必读;作者是 std 同步原语维护者
Zero To Production In RustLuca Palmierihttps://www.zero2prod.com/中级 💰(部分章节免费)想完整体验「从零到上线的 async Web 后端」全流程
Rust in ActionTim McNamara,Manning无官方免费版,请搜「Rust in Action Manning」入门~中级 💰偏爱「边做项目边学」,喜欢底层(内存、网络、CPU)视角
Effective RustDavid Drysdalehttps://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/blogTokio 版本发布与技术解析(runtime、tracing、select! 语义)
Rust Blog(官方)https://blog.rust-lang.org/版本公告与语言变更的权威来源(见 D.1.3)
This Week in Rusthttps://this-week-in-rust.org/每周生态速览,适合替代社交媒体的信息流(见 D.1.3)

⚠️ 提醒:博客里的写法可能针对旧版本,也可能用到 nightly。 看到感兴趣的点,务必去 docs.rs / std 文档确认当前 stable 是否支持。


D.7 工具与生态

D.7.1 必备工具(装完就一直在用)

工具URL一句话说明
rust-analyzerhttps://rust-analyzer.github.io/官方 LSP 实现:补全、跳转、内联类型提示、cargo check 集成,编辑器体验的全部来源
rustfmthttps://github.com/rust-lang/rustfmt官方格式化器(cargo fmt),结束风格争论
clippyhttps://github.com/rust-lang/rust-clippy官方 lint 集合(cargo clippy),能揪出大量「能跑但不对」的写法
baconhttps://dystroy.org/bacon/后台持续跑 cargo check/clippy/test 并在终端显示结果,改一行就自动反馈

D.7.2 测试、覆盖率与验证

工具URL一句话说明
cargo-nextesthttps://nexte.st/更快的测试运行器(cargo nextest run),失败隔离、输出更可读
criterionhttps://bheisler.github.io/criterion.rs/book/统计严谨的基准测试库,出图表与置信区间;写 [[bench]] 的标准选择
proptesthttps://proptest-rs.github.io/proptest/属性测试(property testing):自动生成输入并缩小到最小反例
mirihttps://github.com/rust-lang/miri在 MIR 层解释执行,检测 UB(越界、未对齐、数据竞争);需 nightly
loomhttps://github.com/tokio-rs/loom并发模型检查器:穷举线程交错来验证无锁/同步代码

D.7.3 依赖治理与构建加速

工具URL一句话说明
cargo-denyhttps://embarkstudios.github.io/cargo-deny/统一检查依赖的许可证、安全公告、来源与重复版本
cargo-audithttps://rustsec.org/对照 RustSec 漏洞库审计 Cargo.lock,CI 里必备
sccachehttps://github.com/mozilla/sccache编译缓存(本地/云端),CI 与 monorepo 里显著提速
crosshttps://github.com/cross-rs/cross用容器做交叉编译,避免手配 linker 与 sysroot

D.7.4 宏、FFI 与跨平台

工具URL一句话说明
cargo-expandhttps://github.com/dtolnay/cargo-expand展开宏与 derive 后的真实代码,调试宏的唯一实用手段
bindgenhttps://rust-lang.github.io/rust-bindgen/从 C/C++ 头文件自动生成 Rust FFI 绑定
pyo3https://pyo3.rs/用 Rust 写 Python 扩展模块,或从 Rust 调用 Python
wasm-packhttps://rustwasm.github.io/wasm-pack/把 Rust 编译成 npm 可用的 WASM 包(面向 JS 生态)
trunkhttps://trunkrs.dev/Rust/WASM 前端应用打包与开发服务器(相当于 WASM 版的 Vite)

D.7.5 性能与可观测

工具URL一句话说明
cargo-flamegraphhttps://github.com/flamegraph-rs/flamegraph一键生成火焰图(cargo flamegraph),找性能热点最快的路
cargo-llvm-covhttps://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)

  1. 学习路线与环境准备 —— 先明确目标与前置,再动手装环境。
  2. 环境搭建与工具链 —— 装好 rustup、跑通 cargo run
  3. 变量与流程控制 —— 语法骨架,配合附录 C.1 速查。
  4. 所有权与借用 —— 不能跳过,这是后面一切的地基。
  5. 本附录 D.3 练习平台 的 Rustlings + D.1.1 的 Rust by Example —— 边读边练。
  6. 附录 C.8 文件与 IOC.9 Cargo 命令 —— 立刻开始写「读写文件 + 跑子进程 + 解析参数」的小工具。
  7. D.1.1 的 Rust Cookbook 抄配方,用 clap 处理参数,把工具做完整。

路径二 · 系统学习一门语言(目标:理解设计取舍,能读懂标准库源码)

  1. 环境搭建与工具链 → 建立可复现的环境与 rust-toolchain.toml
  2. 按顺序读完 变量与流程控制所有权结构体与 trait集合与迭代器错误处理泛型与生命周期智能指针与闭包,不要跳章; 每章做「本章练习」,特别是「读代码说编译是否通过」题型。
  3. 同步精读 D.1.1 的 The Book 对应章节,中文吃力时对照 D.2 的中文译本。
  4. 附录 C.10 常用 traitC.6 Option/Result 反复查,直到不用查。
  5. D.5 书单 里的 Effective Rust(免费)与 Rust for Rustaceans,把「能写」升级为「写得地道」。
  6. D.1.3 的 The Rustonomicon + Rust API Guidelines,具备读标准库源码与发布 crate 的能力。

路径三 · 面向 async Web 后端(目标:能独立交付一个可上线的服务)

  1. 先走完路径二的第 1~4 步(所有权与 trait 是 async 的前置条件,不要跳过)。
  2. 并发编程 —— 线程、Send/SyncArc<Mutex<T>>, 配合附录 C.7 速查。
  3. 异步编程 —— async/await 与 Tokio 运行期; 再读本附录 D.1.1The Async Book,搞清 Future 是惰性的、Pin 为什么存在。
  4. D.5 书单Rust Atomics and Locks(免费在线)—— 理解同步原语与内存序,避免写出「能跑但有竞态」的代码。
  5. 本附录 D.7.2cargo-nextest + loom + miri —— 给并发代码上保险。
  6. 跟做 Zero To Production In Rust(D.5),并用 D.7.3cargo-deny/cargo-audit 接入 CI。
  7. 工程化与常用 crate测试、性能与 unsafe 收尾。

🧠 原理:这三条路径共享同一段地基(路径二第 1~4 步)。 差别只在于「地基之后往哪走」:路径一往「马上能用的工具」走, 路径二往「语言机制与生态贡献」走,路径三往「异步运行期与并发正确性」走。 因此无论选哪条,所有权那一章都不能跳


延伸阅读

⚠️ 最后提醒:本附录的链接核对时间为 2026 年(基准 rustc 1.98.1)。 官方文档结构偶尔会调整(例如 The Book 的章节编号、Cargo Book 的页面路径), 若某条 URL 失效,请在 https://doc.rust-lang.org/https://www.rust-lang.org/ 内搜索关键词。 中文资源更新通常滞后于英文原版,遇到冲突以英文官方为准。

内容以 rustc 1.98.1 · Rust 2024 edition 为基准