Rust
Rust 是一门注重内存安全、并发安全与零成本抽象的系统级语言;用所有权模型在无 GC 前提下提供安全默认值,并配套 Cargo 统一工具链。
[!info] 关联笔记
- 知识地图总入口:Rust MOC
- 系统学习路线:Rust 学习路线 MOC
- 设计哲学:Rust 的工程约束与设计哲学
- 环境配置:安装 Rust 并运行第一个程序 · Rustup · Cargo
- 阶段地图:语言基础 · 所有权与类型 · 错误与资源 · 并发与异步 · 工具链 · 测试质量 · 标准库 · 进阶与 unsafe · 系统与服务工程
- 相邻主题:后端开发 MOC · 开发环境 MOC
Rust
这个概念为什么出现
在选语言与开学习路径之前,需要先钉死对象边界:Rust 解决什么工程问题、默认适合什么负载、何时不该硬上。没有这篇定位,后面的语法、所有权与框架笔记容易变成无目的清单。
Rust 是一门开源、静态类型、无垃圾回收器、在编译期用所有权与类型系统消除大量内存与数据竞争问题的系统编程语言。它把语言约束、标准库与 Cargo 工具链绑在一起,主要服务需要可预测性能、高可靠性与长期维护成本可控的系统与网络程序。
[!abstract] 对象定位 本篇只回答「Rust 是什么、适合什么、选择边界在哪里」。
设计动机见 rust-origin-and-philosophy;从零到可交付系统/服务的顺序、阶段目标与逐篇目录见 Rust 学习路线 MOC。本篇不是语法教程,也不是旧版笔记式大杂烩。
这是什么
可先抓这些稳定特征:
- 所有权 + 借用 + 生命周期:编译期追踪谁拥有数据、谁可读可写,无需 GC
- 内存安全与线程安全默认:大量 use-after-free、数据竞争在编译期被拒绝
- 零成本抽象:trait、泛型、迭代器等在常见路径上不引入运行时税
- 显式错误模型:
Result/Option把可恢复失败放进类型系统 - 统一工具链:
rustup管理工具链,cargo负责构建、依赖、测试与发布 - 可嵌入与可互操作:适合与 C ABI 协作,也能编译到 WebAssembly 等目标
核心词汇:ownership、borrow、lifetime、mut、struct、enum、match、trait、impl、Result、Option、Vec、String、&str、crate、mod。
导航:学习路线与阶段 MOC
系统学习请以路线图为准,不要只在本页零散跳转。
| 入口 | 作用 |
|---|---|
| Rust 学习路线 MOC | 七阶段依赖、完成标准、逐篇目录、主干主题 |
| Rust MOC | 主题总导航与分栏索引 |
阶段与子 MOC
| 阶段 | 目标 | 子 MOC |
|---|---|---|
| 一 基本认知 | 程序骨架、不可变默认、类型、控制流、函数 | 语言基础 · 工具链 |
| 二 所有权与类型 | 所有权、借用、切片、struct/enum/trait | 所有权与类型 |
| 三 错误与资源 | Result/Option、Drop、错误传播、组合式抽象 | 错误与资源 · 标准库 |
| 四 并发与异步 | 线程、Send/Sync、channel、async/await | 并发与异步 |
| 五 工程化 | Cargo、模块、测试、Clippy、项目结构 | 工具链 · 测试质量 · 系统与服务 |
| 六 进阶 | 生命周期进阶、智能指针、unsafe、宏、FFI | 进阶与 unsafe |
| 七 真实项目 | CLI、HTTP、序列化、服务交付 | 标准库 · 系统与服务 |
适合做什么
Rust 更像 系统组件 + 网络服务 + CLI + 嵌入式 + 性能敏感库 的共同语言,而不是“只能写底层驱动”。
网络服务与基础设施
网关、代理、消息中间件、存储引擎、可观测采集、云原生子系统。可预测延迟与内存占用是常见动机。
命令行与开发者工具
单二进制交付、强类型配置解析、并发 I/O 友好;生态中大量 CLI 用 Rust 重写以换稳定性。
WebAssembly 与前端加速
把计算热点编译为 Wasm,与 JS 宿主协作;适合加解密、编解码、解析器等路径。
嵌入式与系统编程
无 GC 停顿、可控资源、可与 C 互操作;也可做操作系统组件、驱动、运行时库。
关键优势(对象层)
编译期安全默认
所有权与类型系统把许多“线上才爆”的缺陷前移到编译期,尤其是内存与数据竞争类问题。
性能与控制力
无强制运行时 GC;可在需要时下沉到裸指针与 unsafe,但默认路径保持安全抽象。
工具链体验
cargo check / test / clippy / fmt / doc 形成闭环;编译器错误信息以教学性著称。
不适合或需要谨慎的场景
- 极短脚本与一次性胶水:启动成本与表达密度常不如 Python/Shell
- 强依赖成熟 ORM/全栈生态的快速 CRUD:能做,但生态选择与心智成本不同于 Go/Java/Rails
- 团队无人愿意投入借用检查学习曲线:前几周生产力可能下降
- 必须深度依赖仅有 C++/Java 绑定的巨型框架且无 FFI 预算
学习时最容易误判的三件事
- 把“编译不过”当成语言敌意,而不是安全规则在说话
- 还没建立所有权心智就钻宏、async 框架与 unsafe
- 把
clone()当默认解题法,绕过借用模型却失去设计收益
相关入口
- 总地图:Rust MOC
- 系统路线:Rust 学习路线 MOC
- 哲学:Rust 的工程约束与设计哲学
- 安装验收:安装 Rust 并运行第一个程序
- 工具:Rustup · Cargo · Cargo 命令速查
延伸阅读与资料来源
| 资料 | 类型 | 支撑内容 |
|---|---|---|
| Rust 官网 | 官方 | 定位、场景、生态入口 |
| The Rust Programming Language | 官方书 | 系统教程主线 |
| Rust Reference | 规范向 | 语言规则精确表述 |
| Rust by Example | 官方 | 可运行短例 |
| std 文档 | 标准库 | API 与模块边界 |