Rust 入门系列(第 1 篇,共 5 篇) 阅读时间:12 分钟
引言
这是一个 Rust 入门系列的第一篇文章。作为学习笔记,我会记录 Rust 的核心概念、实际应用和学习过程。
如果你对系统编程、高性能计算或 WebAssembly 感兴趣,Rust 是一个值得投入时间学习的语言。
一、Rust 是什么?
1.1 基本介绍
Rust 是一门系统级编程语言,由 Mozilla Research 开发:
- 首次发布:2010 年
- 1.0 稳定版:2015 年
- 管理组织:Rust Foundation
1.2 核心特性
1. 内存安全
- 无需垃圾回收器(GC)也能保证内存安全
- 编译时检查内存问题,避免空指针、悬垂指针等
2. 零成本抽象
- 高级语法特性不会带来运行时开销
- 性能媲美 C/C++
3. 强大的类型系统
- 静态类型,编译时检查
- 支持泛型、trait、模式匹配
4. 并发安全
- 编译时检查数据竞争
- “Fearless Concurrency”(无畏并发)
5. 现代化工具链
-
Cargo:包管理器 + 构建工具 -
rustfmt:代码格式化 -
clippy:代码检查工具
1.3 为什么 Rust 重要?
根据 TechTarget 的分析:
- 安全性:70% 的软件漏洞是内存安全问题,Rust 从根源解决
- 性能:云原生时代对性能和资源效率要求更高
- WebAssembly:Rust 是编译到 WASM 最成熟的语言
- 生态增长:Stack Overflow 调查显示,Rust 连续多年成为最受欢迎的语言
二、Rust 能做什么?
2.1 系统编程
Rust 的传统强项:操作系统、设备驱动、嵌入式系统。
真实案例:
- Redox OS:完全用 Rust 编写的微内核操作系统
- Microsoft Windows:部分内核和驱动用 Rust 重写
- Linux Kernel:从 6.1 版本开始支持 Rust 模块
- Google Android:AOSP 中包含多个 Rust 模块
2.2 WebAssembly
Rust 是编译到 WebAssembly 最成熟的语言,可以在浏览器中运行接近原生速度的代码。
真实案例:
- Figma:在线设计工具的核心渲染引擎用 Rust + WASM
- Photoshop Web:Adobe 将 Photoshop 移植到 Web,性能关键部分用 Rust
- Google Earth:Web 版本的 3D 渲染用 Rust + WASM
典型用法:
// Rust 代码编译为 WASM
#[wasm_bindgen]
pub fn process_image(data: &[u8]) -> Vec<u8> {
// 高性能图像处理
}// JavaScript 调用
import init, { process_image } from './pkg/image_processor.js';
await init();
const result = process_image(imageData);2.3 云基础设施
Rust 在云原生领域快速增长。
真实案例(来源):
- AWS Firecracker:AWS Lambda 和 Fargate 的微虚拟机技术
- Cloudflare Pingora:取代 Nginx 的高性能 Web 代理
- Microsoft Azure IoT Edge:IoT 设备上的容器化平台
- AWS Bottlerocket:容器优化的 Linux 发行版
2.4 开发工具
很多现代开发工具都是 Rust 写的,因为需要极致性能。
热门项目(来源):
- Ruff:极速 Python linter/formatter(比 Pylint 快 100 倍)
- uv:极速 Python 包管理器(比 pip 快 10-100 倍)
- ripgrep:递归搜索工具,比 grep 快得多
- Tauri:用 Rust + Web 技术构建桌面应用(比 Electron 轻量)
- SWC:超快的 JavaScript/TypeScript 编译器
- Turbopack:Vercel 的下一代打包工具
2.5 区块链
Rust 是区块链领域的首选语言。
真实案例:
- Solana:高性能区块链平台
- Polkadot:跨链协议
- Diem(前 Libra):Meta 的加密货币项目
- Sui:新一代 Layer 1 区块链
2.6 游戏开发
Rust 在独立游戏领域增长快速。
游戏引擎:
- Bevy:数据驱动的游戏引擎
- Fyrox:3D 游戏引擎
2.7 嵌入式和 IoT
Rust 适合资源受限的嵌入式设备。
项目:
- Embassy:异步嵌入式框架
- RTIC:实时中断驱动并发框架
三、大厂如何使用 Rust?
Microsoft
- Windows 内核模块
- Azure IoT Edge
- 设备驱动框架
- Android 系统组件
- Fuchsia OS
- Chrome 浏览器组件
AWS
- Firecracker(虚拟化)
- Bottlerocket(容器 OS)
- 多个性能关键服务
Cloudflare
- Pingora(Web 代理)
- Workers Runtime
- 网络服务
Meta
- Diem 区块链
- 内部工具链
四、Rust vs 其他语言
4.1 Rust vs C/C++
| 特性 | C/C++ | Rust |
|---|---|---|
| 性能 | 🚀🚀🚀🚀🚀 | 🚀🚀🚀🚀🚀(相当) |
| 内存安全 | ❌ 手动管理 | ✅ 编译时保证 |
| 学习曲线 | 🔴 陡峭 | 🔴 陡峭 |
| 现代化工具 | ⚠️ 有限 | ✅ 优秀 |
何时用 Rust:新项目,需要内存安全 何时用 C/C++:维护遗留代码,已有大型代码库
4.2 Rust vs Go
| 特性 | Go | Rust |
|---|---|---|
| 性能 | 🚀🚀🚀 | 🚀🚀🚀🚀🚀 |
| 内存安全 | ✅ GC | ✅ 编译时 |
| 并发 | ✅ Goroutine | ✅ 安全并发 |
| 学习曲线 | 🟢 简单 | 🔴 陡峭 |
何时用 Rust:极致性能,WebAssembly,系统编程 何时用 Go:微服务,快速开发,团队效率
4.3 Rust vs Python
| 特性 | Python | Rust |
|---|---|---|
| 性能 | 🚀 慢 | 🚀🚀🚀🚀🚀 快 |
| 开发速度 | ✅ 极快 | ⚠️ 较慢 |
| 适用场景 | 脚本、数据分析 | 系统、性能关键 |
最佳组合:Python + Rust(用 PyO3 绑定)
五、学习路径
5.1 官方资源
- The Rust Programming Language Book(必读,官方教程)
- Rust by Example(代码示例)
- Rustlings(交互式练习)
5.2 视频课程
- Frontend Masters: Rust for TypeScript Developers(ThePrimeagen)
- Rust Programming Course for Beginners(freeCodeCamp)
5.3 实战项目
- Awesome Rust:精选 Rust 项目
- Command Line Book:构建 CLI 工具
- Tokio Tutorial:异步编程
5.4 社区
六、常见误解
误解 1:Rust 只能做系统编程
真相:Rust 可以做 Web 后端、CLI 工具、WebAssembly、游戏、数据处理等。
误解 2:Rust 太难学
真相:学习曲线确实陡峭,但编译器错误信息非常友好,能帮你快速理解问题。
误解 3:Rust 开发效率低
真相:初期较慢,但掌握后,编译器能避免大量运行时 bug,长期效率更高。
误解 4:Rust 不适合 Web 开发
真相:Actix-web、Rocket、Axum 等框架性能优异,适合高性能 Web 服务。
七、何时选择 Rust?
✅ 适合 Rust 的场景
- 性能关键:游戏引擎、视频处理、大数据计算
- 内存受限:嵌入式设备、IoT、边缘计算
- 系统级编程:操作系统、驱动、虚拟化
- WebAssembly:浏览器中的高性能计算
- 并发密集:高并发服务器、数据处理管道
- 安全关键:金融、医疗、航空航天
⚠️ 不太适合的场景
- 快速原型:Python/JavaScript 更合适
- 简单脚本:Bash/Python 足够
- 团队不熟悉:学习成本高
八、本系列计划
这个系列会涵盖:
第 1 篇(本篇):Rust 是什么?能做什么? 第 2 篇:Rust 基础语法速通 第 3 篇:所有权、借用、生命周期 第 4 篇:实战项目 - 构建 CLI 工具 第 5 篇:Rust + WebAssembly 实战
总结
Rust 是一门现代化的系统编程语言,兼具性能和安全性:
- ✅ 高性能:媲美 C/C++
- ✅ 内存安全:无需 GC 也能保证安全
- ✅ 现代化:优秀的工具链和生态
- ✅ 适用广泛:系统编程、Web、WASM、区块链
如果你对性能优化、系统编程或 WebAssembly 感兴趣,Rust 是一个值得投入时间学习的语言。
参考资料
- Why is Rust a critical programming language - TechTarget
- What is Rust and why is it so popular? - Stack Overflow
- 24 Awesome Open-Source Rust Projects - Serokell
- Rust Programming Language Use Cases - K&C
- TOP 61 Rust Open Source Projects - Web3 Career
系列导航
- 下一篇:Rust 入门(二):基础语法速通 🦀