路径 — Rust 开发

本教程体系可当作类百科全书使用,内容完善但体量庞大。若作为教程从头通读,效率不高。
建议按照本路线中的推荐阅读顺序,结合索引文件进行选择性学习。
同时推荐与 AI 进行问答互动学习——在自认为掌握语法或数据结构之后,去洛谷或力扣做题验证。
如遇到错误,不建议死磕,可用 AI 辅助纠正思路。

前置条件:已有 C++/C 的扎实基础(理解指针、堆栈、RAII、OOP),或已完成 路径-CPP开发 的至少 Phase 1-3。


Rust 的战略定位:为什么 C++ 程序员要学 Rust

C++ 和 Rust 共享零开销抽象的哲学,但走的是两条路:

维度C++Rust
内存安全靠程序员自律 + 静态分析工具编译期所有权/借用检查,数学证明级别
并发安全std::thread + std::mutex,数据竞争是 UBSend + Sync trait,编译期拒绝数据竞争
依赖管理无官方工具(vcpkg/conan 第三方)Cargo 内置,依赖解析、构建、发布一体
模块系统#include 文本拼接 + 预处理mod / use / crate,真正的模块系统
错误处理异常 / 错误码 / std::expectedResult<T, E> / ? 操作符,类型安全
学习曲线浅入深出(写对容易,写优秀很难)深入浅出(前期陡峭,写对后很少出 bug)

Phase 1: Rust 语法入门 (建议 2-3 周)

目标:用 Rust 写出能过基础题的程序。

顺序文件与 C++ 的对应概念练习
1[[rust/1入门/01-认识Rust:你好世界01 认识 Rust]]rustup ≈ vcpkg/conan, cargo ≈ CMake
2[[rust/1入门/02-第一个程序:从零开始02 第一个程序]]fn main() vs int main()
3[[rust/1入门/03-变量与数据03 变量与数据]]let vs auto, mut vs const
4[[rust/1入门/04-做决策:条件与循环04 条件与循环]]if 是表达式不是语句
5[[rust/1入门/05-盒子与标签:所有权入门05 所有权]]move 语义 = unique_ptr 转移, 无 GC
6[[rust/1入门/06-借东西:引用与借用06 引用与借用]]&T = const 引用, &mut T = 独占可变引用
7[[rust/1入门/07-自定义类型:结构体07 结构体]]impl vs 类成员函数, 无继承
8[[rust/1入门/08-多种选择:枚举与匹配08 枚举]]enum + match = variant + visit
9[[rust/1入门/09-装东西的容器:集合09 集合]]Vec = std::vector, HashMap = std::unordered_map
10[[rust/1入门/10-出错了怎么办:错误处理10 错误处理]]Resultstd::expected, ? ≈ try/throw
11[[rust/1入门/11-万能模板:泛型11 泛型]]泛型 + trait bound ≈ 模板 + concept
12[[rust/1入门/12-共享行为:Trait入门12 Trait]]trait ≈ 纯虚基类 (接口), 无多重继承
13[[rust/1入门/13-引用有效期:生命周期入门13 生命周期]]编译器自动计算引用有效期, 对标 address sanitizer
14[[rust/1入门/14-组织代码:模块与包14 模块]]mod ≈ namespace, crate ≈ translation unit

Phase 2: Rust 底层原理 (建议 2-3 周)

目标:理解 Rust 编译器和运行时的底层机制。

顺序文件对应 C++ 底层知识
15[[rust/2深入/01-内存本质:从比特到指针01 内存本质]]
16[[rust/2深入/02-所有权系统的计算机科学基础02 所有权系统]]
17[[rust/2深入/03-引用与生命周期的底层实现03 生命周期底层]]
18[[rust/2深入/04-类型系统的力量04 类型系统]]
19[[rust/2深入/05-Trait系统的计算机科学05 Trait 系统]]
20[[rust/2深入/06-智能指针的内存管理原理06 智能指针]]
21[[rust/2深入/07-并发的硬件基础07 并发硬件]]
22[[rust/2深入/08-异步编程的底层机制08 异步底层]]
23[[rust/2深入/09-Unsafe-Rust的计算机科学边界09 Unsafe]]
24[[rust/2深入/10-编译器如何理解你的代码10 编译器]]
25[[rust/2深入/11-宏系统的编译原理11 宏系统]]

Phase 3: 项目实践与工程 (选学)

顺序文件对应项目类型
26[[rust/3实践/01-简易计算器:从零到GUI01 计算器]]
27[[rust/3实践/02-学生管理系统:命令行工具02 学生管理]]
28[[rust/3实践/03-工具栏管理工具:TUI入门03 TUI 工具]]
29[[rust/3实践/04-音乐流媒体播放器04 音乐播放]]
30[[rust/3实践/05-贪吃蛇游戏:从零开发05 贪吃蛇]]

Phase 4: 企业工程与安全 (选学)

文件对应领域
[[rust/4工程/01-Cargo工程化与企业级构建Cargo 工程化]]
[[rust/4工程/02-企业级测试策略测试策略]]
[[rust/4工程/03-安全错误处理错误处理]]
[[rust/4工程/04-内存安全与后门防范内存安全]]
[[rust/4工程/05-网络安全:零信任架构零信任]]
[[rust/4工程/06-数据安全与加密数据安全]]
[[rust/4工程/07-并发与异步安全并发安全]]
[[rust/4工程/08-性能优化与安全权衡性能优化]]
[[rust/4工程/09-FFI与跨语言安全FFI 安全]]
[[rust/4工程/10-嵌入式与no_std企业应用嵌入式]]

Phase 5: C → Rust 实战重构 (选学)

顺序文件练习规模
1[[rust/5重构/01-C代码阅读理解方法论C 代码理解]]
2[[rust/5重构/02-简单C函数重构实战简单函数]]
3[[rust/5重构/03-C项目结构重构项目结构]]
4[[rust/5重构/04-开源C项目重构:小型小型项目]]
5[[rust/5重构/05-开源C项目重构:中型中型项目]]
6[[rust/5重构/06-重构方法论总结方法论总结]]

相关模块

模块关联点链接
数据结构Rust 标准库的 Vec/HashMap/BTreeMap 对应数据结构章节[[数据结构/DSA学习路线
算法所有算法题均可用 Rust 实现[[算法/算法技巧/动态规划
C 语言Rust FFI 大量使用 C ABI[[c语言教程/2深化/06_编译链接与ELF
C++ 进阶trait object dyn 与虚函数 vtable 对比[[cpp教程/cpp深化教程/07_面向对象(三)多态与虚函数
内核Linux Rust 内核开发[[内核/C与Rust的内核新时代
红队Rust 在网络安全工具链中的应用[[red_team/Rust红队脚本编程
多语言工程化Rust 与其他语言的 FFI、服务协作与交付[[多语言工程化/多语言工程化目录