← [ BACK_TO_NOTES ]

Rust

Rust 是一门注重内存安全、并发安全与零成本抽象的系统级语言;用所有权模型在无需强制 GC 的前提下提供安全默认值,并配套 Cargo 统一工具链。

#resource #growing #dev #rust

[!info] related notes

Rust

这个概念为什么出现

在选语言与开学习路径之前,需要先钉死对象边界:Rust 解决什么工程问题、默认适合什么负载、何时不该硬上。没有这篇定位,后面的语法、所有权与框架笔记容易变成无目的清单。

Rust 是一门开源、静态类型、无需强制垃圾回收器、在编译期用所有权与类型系统消除大量内存与数据竞争问题的系统编程语言。它把语言约束、标准库与 Cargo 工具链绑在一起,主要服务需要可预测性能、高可靠性与长期维护成本可控的系统与网络程序。

[!abstract] 对象定位 本篇只回答「Rust 是什么、适合什么、选择边界在哪里」。
设计动机见 rust-origin-and-philosophy;从零到可交付系统/服务的顺序、阶段目标与逐篇目录见 Rust 学习路线 MOC。本篇不是语法教程,也不是旧版笔记式大杂烩。

这是什么

可先抓这些稳定特征:

  • 所有权 + 借用 + 生命周期:编译期追踪谁拥有数据、谁可读可写,无需 GC
  • 内存安全与线程安全默认:大量 use-after-free、数据竞争在编译期被拒绝
  • 零成本抽象:目标是高级抽象不比等价手写实现更贵;动态分派、分配与具体实现仍有成本,热点需测量
  • 显式错误模型:Result 表达成功/失败,Option 表达值存在/缺席;panic 和资源耗尽等仍是另外的边界
  • 统一工具链: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 互操作;也可做操作系统组件、驱动、运行时库。

关键优势(对象层)

编译期安全默认

所有权与类型系统把许多内存与数据竞争问题前移到编译期;保证依赖编译器与 unsafe 封装的正确性,不排除死锁、业务竞态、资源泄漏或逻辑错误。

性能与控制力

无强制运行时 GC;可在需要时下沉到裸指针与 unsafe,但默认路径保持安全抽象。

工具链体验

cargo check / test / clippy / fmt / doc 形成闭环;编译器错误信息以教学性著称。

不适合或需要谨慎的场景

  • 极短脚本与一次性胶水:编写、编译与迭代成本可能高于 Python/Shell;不是说 Rust 二进制的进程启动通常更慢
  • 强依赖成熟 ORM/全栈生态的快速 CRUD:能做,但生态选择与心智成本不同于 Go/Java/Rails
  • 团队无人愿意投入借用检查学习曲线:前几周生产力可能下降
  • 必须深度依赖仅有 C++/Java 绑定的巨型框架且无 FFI 预算

学习时最容易误判的三件事

  1. 把“编译不过”当成语言敌意,而不是安全规则在说话
  2. 还没建立所有权心智就钻宏、async 框架与 unsafe
  3. 把 clone() 当默认解题法,绕过借用模型却失去设计收益

相关入口

延伸阅读与资料来源

资料类型支撑内容
Rust 官网官方定位、场景、生态入口
The Rust Programming Language官方书系统教程主线
Rust Reference规范向语言规则精确表述
Rust by Example官方可运行短例
std 文档标准库API 与模块边界
创建于 2025/1/1 更新于 2026/10/7
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本