Skip to content

Rust 学习路线总览

这是一份为已经有其他语言(如 JS/TS、Go、Java、C++)基础的开发者准备的 Rust 学习路线图。 从 "Hello World" 到 "为什么我的生命周期编译不过",再到 "用 Tokio 和 Axum 写高并发服务" 的完整闭环。

一句话先记住:Rust 不是为了折磨你而设计出所有权和生命周期的,它是为了在不使用垃圾回收(GC)的前提下,保证内存安全无数据竞争的并发


一、整套教程的结构

按 "从基础到系统编程" 分五部分,前三部分讲语言特性,后两部分讲工程应用

部分主题解决的核心问题
一、基础与所有权语法、所有权、借用Rust 最难也是最核心的心智模型建立
二、类型与抽象Enum、Trait、泛型如何在 Rust 中优雅地组织代码和复用逻辑
三、并发与异步线程、Channel、Async/Await突破单核,理解 Rust 的无畏并发与 Tokio 运行时
四、工程实战与生态CLI、Web 服务、数据库怎么用 Rust 把实际的活干了(Axum/SQLx)
五、进阶与系统级宏、Unsafe、FFI、WASM榨干性能,与底层系统和其他语言交互

二、完整目录(规划约 30 篇)

第一部分:基础语法与核心心智(所有权与借用)

  • 02-环境搭建与Cargo全家桶.md —— 不只是编译器,更是无敌的包管理器
  • 03-基础语法速通.md —— 变量、数据类型、控制流(和其他语言大同小异)
  • 04-所有权机制-Rust的灵魂.md —— 为什么字符串赋值会报错(Move 语义)
  • 05-引用与借用.md —— 借东西要还,而且不能同时有人在改(读写锁原则)
  • 06-切片(Slice).md —— 零拷贝访问集合序列
  • 07-结构体与方法(Struct & impl).md —— 面向对象的数据封装

第二部分:类型系统与抽象机制

  • 08-枚举与模式匹配(Enum & Match).md —— 吊打其他语言的强大类型和分支
  • 09-Option与Result-告别空指针与异常.md —— 优雅的错误处理机制
  • 10-集合类型.md —— Vector、String 与 HashMap 的底层细节
  • 11-泛型(Generics).md —— 消除重复代码
  • 12-Trait-接口与多态.md —— 鸭子类型与静态分发/动态分发(Box<dyn Trait>)
  • 13-生命周期(Lifetimes).md —— 告诉编译器引用的有效范围(最折磨人的一集)

第三部分:闭包、并发与异步

  • 14-闭包与迭代器.md —— 函数式编程与零成本抽象
  • 15-智能指针.md —— Box、Rc、Arc、RefCell(绕过借用检查器的后门)
  • 16-无畏并发-多线程与锁.md —— Thread、Mutex、RwLock 与 Send/Sync
  • 17-消息传递-Channel.md —— 不要通过共享内存来通信,要通过通信来共享内存
  • 18-Async与Await底层原理.md —— Future、Waker 与 Pin 是什么鬼
  • 19-Tokio运行时详解.md —— Rust 异步生态的事实标准

第四部分:工程实战与生态(用 Rust 干活)

  • 20-编写命令行工具(CLI).md —— Clap、Anyhow 打造顺手的开发工具
  • 21-Axum-现代Web框架入门.md —— 路由、中间件与状态共享
  • 22-数据库交互-SQLx与SeaORM.md —— 异步查询与编译期 SQL 检查
  • 23-Serde-序列化与反序列化.md —— 统治整个生态的数据转换库
  • 24-自动化测试与CI/CD.md —— 单元测试、集成测试与 GitHub Actions
  • 25-实战:写一个带 Auth 的 RESTful API.md —— 把 Web 生态串起来

第五部分:底层深入与跨界

  • 26-Unsafe Rust.md —— 我比编译器聪明,出了事我负责(裸指针与未定义行为)
  • 27-宏(Macros).md —— 声明宏与过程宏(写代码的代码)
  • 28-FFI-与其他语言交互.md —— 把 Rust 编译成动态链接库给 C/Python/Node.js 用
  • 29-WebAssembly(WASM)实战.md —— 让 Rust 跑在浏览器里
  • 30-Rust性能优化与火焰图.md —— 找出代码中的性能瓶颈

三、推荐的工具链

用途工具备注
IDE/编辑器RustRover (JetBrains) / VSCode (rust-analyzer) / Cursorrust-analyzer 是必备插件
编译器套件rustup, rustc, cargorustup 是安装管理器,cargo 是包管理器
格式化与Lintrustfmt, clippy每天提交代码前必跑 cargo clippy
工具链切换rustup default stable/nightly某些前沿库可能需要 nightly 版本

四、给新手的几个忠告

  1. 跟编译器做朋友,不要对抗它。 Rust 编译器(rustc)的报错是世界上最友好的报错。仔细读它的提示,通常它已经把怎么改的代码都写在终端里了。
  2. 第一周你会极度挫败。 写链表、图等数据结构时会被生命周期按在地上摩擦,这是正常的。先用 .clone() 把代码跑通,后期再来优化性能,不要一开始就追求零拷贝。
  3. 不要一上来就写 Async。 在你彻底弄懂所有权、生命周期和 Trait 之前,强行写带引用的异步代码会让你陷入 PinLifetime 的深渊。
  4. 多用模式匹配和迭代器。 这是 Rust 写起来最爽的地方,习惯了之后你会觉得其他语言的 if-elsefor 循环索然无味。

下一篇:02-环境搭建与Cargo全家桶.md,先把开发环境搞定。

最后更新: