
大家好,我是若风。
前几天和一个做了 8 年 C++ 的朋友聊天,他说了句话让我印象很深:"我现在新项目全部用 Rust,不是因为我喜欢 Rust,而是因为我怕 C++。"
这话听着像段子,但其实挺真实的。
过去两年,我一直在关注 Rust 的生态发展。从 Linux 内核正式接纳 Rust,到 Cloudflare 用 Rust 重写了整个代理层,到 Google 说 Android 新写的 Rust 代码内存安全漏洞为零------这些不是 PPT 上的数字,是生产环境跑出来的数据。
今天这篇文章,是我花了不少时间做的一次深度调研,把 Rust 生态中最知名的项目、框架选型、以及这个语言的核心优缺点,整理成一份尽量完整的技术地图。
不管你是在考虑要不要学 Rust,还是已经在用但想看看全貌,希望这篇能帮到你。
先说结论:Rust 已经不是"未来语言"了 2026 年的 Rust,已经过了"值得关注"的阶段。
它现在跑在 Linux 内核里、Android 的关键组件里、Cloudflare 每天处理万亿级请求的代理层里、AWS 的虚拟化基础设施里。美国政府(CISA、NSA、白宫)公开推荐内存安全语言,Rust 排第一。
这不是某个 Rust 布道师在喊口号,而是整个行业在用真金白银和代码做选择。
第一部分:Rust 写的知名项目
我把这些项目按领域分了类,每个都标注了"为什么选 Rust",方便你快速找到自己关心的方向。
操作系统 & 内核:最硬核的战场
Linux Kernel(Rust 模块)------ 这是 Rust 生态里最具象征意义的项目。从 Linux 6.1 开始,Rust 成为内核历史上第一个官方支持的除 C 以外的语言。Nova GPU 驱动、网络和文件系统驱动正在用 Rust 重写。Linus Torvalds 本人亲自支持推进这件事,分量不言自明。
Android(AOSP) ------ Google 从 Android 12 开始在 AOSP 中引入 Rust,不是简单试点,而是战略性投入。结果很直接:新增的 Rust 代码,内存安全漏洞数量为零。要知道,Android 高危漏洞里约 70% 来自内存安全问题。这个数字直接被 Rust 干掉了。
Windows------ 微软也在积极推动 Rust 进入 Windows 开发,包括 WinRT/Windows API 的 Rust 投影(Rust for Windows),以及关键组件的 Rust 重写。微软公开承认,历史上 Windows 的 CVE 里,内存安全问题占了大头。
Redox OS------ 完全用 Rust 编写的微内核操作系统。从引导加载器到驱动到用户空间,全是 Rust。它证明了一件事:Rust 可以从零构建一个完整的 OS。
云基础设施 & DevOps:Rust 的主战场
Firecracker(AWS)------ 轻量级 microVM,为 AWS Lambda 和 Fargate 提供隔离。AWS 专门写了博客解释为什么选 Rust:内存安全、低延迟、小二进制体积。Firecracker 可以在不到 125ms 内启动一个 VM,这个性能是 C 都要花很大力气才能做到的。
Pingora(Cloudflare)------ 这个项目值得单独说。
Cloudflare 用 Rust 写了一个全新的 HTTP 代理框架 Pingora,用来替代 Nginx。结果是这样的:吞吐量提升 1.6 倍 ,CPU 使用降低 70% ,延迟降低 1.1ms ,生产环境零崩溃。每天处理万亿级请求。
说实话,这些数字我第一次看到的时候是很震惊的。不是 Rust 比 C 快(它不会),而是 Rust 的安全模型让工程师可以大胆做优化------不用担心引入内存安全问题。这种"放心优化"带来的性能提升,往往比语言本身的性能差异更大。
Bottlerocket(AWS)------ 专为容器优化的 Linux 发行版,全部用 Rust 编写。AWS 把它作为容器运行时的首选 OS。
vector(Datadog)------ 高性能日志和指标收集工具,用 Rust 替代了 Logstash/Fluentd 的场景。性能差距不是一点点。
数据库 & 存储:Rust 正在吃掉这个领域
TiKV(PingCAP)------ 分布式 KV 数据库,作为 TiDB 的存储引擎。这是 Rust 在数据库领域最成熟的生产级项目之一。PingCAP 选择 Rust 的理由很直接:既要 C 级别的性能,又要内存安全。Go 的 GC 延迟在数据库场景下是硬伤。
Neon------ Serverless PostgreSQL 替代方案,存储引擎用 Rust 编写。已经拿到不少融资,在 Serverless 数据库赛道跑得很快。
Qdrant------ 向量相似度搜索引擎。在 AI/LLM 时代,向量数据库是刚需,Qdrant 用 Rust 做到了高性能和低延迟,在向量搜索赛道站稳了脚。
SurrealDB------ 多模型数据库(文档、图、KV、关系),核心用 Rust。这几年很火的新一代数据库之一。
GreptimeDB------ 时序数据库,纯 Rust 实现。国产开源项目,在时序场景下性能表现很好。
浏览器 & 渲染引擎:Rust 的发源地
Servo------ Mozilla 发起的浏览器引擎实验项目,是 Rust 语言的"亲生项目"。虽然 Servo 本身没有成为主流浏览器引擎,但它验证了 Rust 在浏览器场景的可行性,孵化的技术(如 Stylo、WebRender)已经进入了 Firefox。
Firefox Stylo------ Firefox 的 CSS 引擎用 Rust 重写。并行 CSS 样式计算,显著提升了页面渲染性能。这是 Rust 在大型项目中第一次大规模验证。
WebRender------ Firefox 的 GPU 加速渲染器,也是 Rust 写的。它把网页渲染从 CPU 搬到了 GPU,是 Firefox 性能提升的关键组件。
开发者工具(CLI):Rust 的"杀手级应用"
说实话,Rust 在 CLI 工具领域的渗透力可能是最容易被低估的。很多开发者每天都在用 Rust 写的工具,自己都不知道。
ripgrep(rg)------ 替代 grep 的超快搜索工具。几乎已经成为开发者的标配,很多人甚至不知道 rg 是 Rust 写的。
fd------ 替代 find 的现代文件搜索工具,API 更友好,默认行为更合理。
bat ------ 替代 cat,支持语法高亮和 Git 集成。cat 命令用了几十年,bat 一次就回不去了。
eza------ 替代 ls,彩色输出加 Git 状态显示。原 exa 的社区延续版本。
starship------ 跨 shell 的终端提示符,极致可定制。用过的都知道有多舒服。
zoxide ------ 替代 cd 的智能目录跳转工具。它会学习你的习惯,用 z foo 就能跳到你最常去的 foo 目录。
delta------ Git diff 美化工具,让代码审查的终端体验提升了一个档次。
还有两个特别值得关注的:
Ruff ------ 用 Rust 写的 Python linter/formatter,比现有的 Python 工具快 10 到 100 倍。它正在替代 flake8、black、isort 等一整套工具。Python 社区对它的接受速度惊人。
Biome------ 用 Rust 写的 JS/TS formatter/linter,目标是替代 Prettier 和 ESLint。速度碾压。
这两个项目的意义在于:Rust 不只是系统编程语言,它正在成为"用其他语言写的工具"的更快替代方案。
桌面应用 & GUI:Electron 的终结者?
Tauri------ Electron 的轻量替代。后端用 Rust,前端用 Web 技术(React/Vue/Svelte 都行)。二进制体积比 Electron 小 10 到 100 倍,内存占用也更低。已经有一大批生产级应用在用 Tauri。
Zed------ 用 Rust 编写的高性能代码编辑器,由 Atom 的原团队成员打造。启动速度和响应速度都非常快。
区块链:Rust 的另一个阵地
Solana------ 高性能公链,核心运行时用 Rust 写的。Solana 的性能在很大程度上得益于 Rust 的零成本抽象和无 GC 特性。
Polkadot------ 跨链协议,Substrate 框架用 Rust 编写。在区块链领域,Rust 的采用率非常高。
AI & 机器学习:Rust 正在入场
Candle(Hugging Face)------ 轻量级 ML 推理框架,纯 Rust。Hugging Face 出品,目标是提供一种不依赖 PyTorch/TensorFlow 的轻量推理方案。
Burn------ 全面的深度学习框架,支持多后端(WGPU、CUDA、Torch)。是 Rust ML 生态里最完整的框架。
mistral.rs------ 高性能 LLM 推理引擎。在 LLM 推理这个场景下,Rust 的性能优势非常明显。
第二部分:Rust 框架生态全景
了解了知名项目之后,如果你想在 Rust 上做开发,框架怎么选?这是我整理的框架选型指南。
Web 框架:Axum 已经成为首选 Rust 的 Web 框架经过了几年的竞争,格局已经很清楚了。
Axum 是目前新项目的首选。它由 Tokio 团队维护,构建在 hyper 和 Tokio 之上。最大的优势是 DX(开发体验):handler 就是普通的 async 函数,不需要宏,不需要特殊的 trait,写起来很自然。在 TechEmpower 基准测试中性能也是顶尖水平。
Actix Web 是性能之王。在 TechEmpower 基准测试中常年排第一,不是 Rust 里第一,是所有语言所有框架里第一。它使用 Actor 模型(但不强制要求),极致优化。如果你需要极限吞吐量,选它。
Rocket 是 DX 之王。大量使用宏来提供类型安全的路由、请求守卫、声明式 API。写起来像 Rails,非常舒服。性能比 Axum 和 Actix 略低,但对大多数场景来说完全够用。
Loco 是新晋选手,灵感来自 Rails。它基于 Axum 和 SeaORM,提供了完整的脚手架:CLI 生成器、认证、后台任务、邮件、测试,开箱即用。如果你从 Rails 或 Django 转过来,Loco 会让你感觉亲切。
怎么选?简单说:默认选 Axum,追求极限性能选 Actix Web,追求开发速度选 Rocket 或 Loco。
异步运行时:Tokio 是事实标准
Tokio 是 Rust 异步生态的绝对主流。work-stealing 调度器、丰富的生态(fs、net、sync、time)、最好的文档和社区支持。Axum、Actix Web、Hyper、Tonic(gRPC)、Reqwest 全都基于 Tokio。
async-std 的 API 镜像标准库,上手快,但社区势头已经明显不如 Tokio。
smol 只有约 1500 行代码,极简。适合嵌入式场景或写库时不想强制依赖某个运行时。
建议:除非你有特殊理由,否则用 Tokio 就对了。
ORM & 数据库
SQLx 是最流行的选择。它不是传统 ORM,而是一个异步 SQL 工具包,最大的杀手锏是编译时 SQL 校验------写错 SQL,编译都过不了。对于喜欢写原生 SQL 又想要类型安全的团队,这是完美选择。
SeaORM 构建在 SQLx 之上,提供 ActiveRecord 风格的异步 ORM。如果你习惯 Django ORM 或 Rails ActiveRecord,SeaORM 会让你很舒服。
Diesel 是最成熟的 Rust ORM,编译时类型安全最强。但它是同步优先的设计(虽然有 diesel-async),在 async 场景下不如前两者自然。
GUI 框架
Tauri------ Web 前端 + Rust 后端,适合做桌面应用,是 Electron 的直接替代。
Dioxus------ React 风格的 Rust UI 框架,支持桌面、Web、移动端,一套代码多端运行。
egui------ Immediate mode GUI,适合做工具界面和游戏内 UI,写起来简单直接。
iced------ Elm 风格,适合做原生桌面应用,界面看起来更"原生"。
Slint------ 声明式 UI,面向嵌入式和工业界面场景。
游戏引擎
Bevy------ 社区最活跃的 Rust 游戏引擎,基于 ECS(实体组件系统)架构,使用 wgpu 做渲染。模块化的插件系统设计很优雅。
Fyrox------ 传统场景图架构,自带可视化编辑器,Unity 风格的体验。如果你不想纯代码开发,Fyrox 更友好。
第三部分:Rust 语言的优缺点洞察
最后聊聊语言本身。我把优缺点分开讲,尽量给出真实的使用感受,而不是官方文档的复述。
核心优势
1. 编译通过就不会有内存安全问题
这是 Rust 的灵魂。所有权系统加借用检查器,在编译期就把缓冲区溢出、use-after-free、double free、数据竞争这些问题全部消灭。
不是减少,是消灭。
Google 的数据最直接:Android 中新写的 Rust 代码,内存安全漏洞数量为零。微软也公开说过,Windows 历史上约 70% 的 CVE 是内存安全问题。这些问题在 Rust 里,编译器直接帮你挡住了。
这种安全感带来的不只是少出 bug,更是一种心理上的解放------你可以放心大胆地做优化、重构、写复杂逻辑,不用担心踩到内存安全的雷。
2. 零成本抽象
Rust 的迭代器、闭包、trait、泛型这些高层抽象,编译后的代码性能等同于手写的底层代码。你可以用优雅的方式写代码,不需要在"好看"和"快"之间做选择。
这一点跟 C++ 的"零成本抽象"理念一脉相承,但 Rust 做得更彻底、更一致。
3. 无畏并发
Rust 的 Send 和 Sync trait 在编译期就保证了线程安全。如果你的代码有数据竞争,编译器会直接报错,拒绝编译。
这意味着你可以在 Rust 里大胆地写多线程代码,不用像在 C/C++ 里那样如履薄冰。这种"无畏并发"的体验,是其他语言很难给你的。
4. 工具链一流
cargo 是我用过的最好的包管理+构建+测试+发布一体化工具。rustup 管理多版本工具链,clippy 做代码质量检查,rustfmt 统一代码风格,rust-analyzer 提供 IDE 支持。
这套工具链的体验,说实话比 C/C++ 好了一个时代。
5. 生态增长迅猛
crates.io 上超过 16 万个 crate,下载量数十亿次。连续多年 Stack Overflow "最受喜爱语言"第一名。Rust Foundation 的赞助商包括 Google、AWS、Microsoft、华为等。
6. 政府背书
美国 CISA、NSA、白宫都公开推荐内存安全语言,Rust 排第一。这对国防、基础设施、金融等对安全性要求极高的行业有直接影响。
核心劣势
说实话,不谈 Rust 的缺点是不诚实的。它有很明显的短板。
1. 学习曲线陡峭
所有权、借用、生命周期------这三个概念是 Rust 独有的,没有其他语言的经验可以迁移。即便是有 10 年 C++ 经验的开发者,也需要几周到几个月才能真正适应。
这不是智商问题,是概念密度的问题。Rust 把其他语言在运行时才暴露的问题,前置到了编译期,你需要学会一种新的思考方式。
2. 编译速度慢
大型项目的首次编译可能需要几分钟。虽然增量编译改善了很多,但跟 Go 比还是慢了一个数量级。
这主要是因为 borrow checker 的复杂分析和 monomorphization(泛型单态化)带来的编译开销。在"快速迭代"的场景下,编译等待确实会打断心流。
3. Async Rust 更难
如果你觉得同步 Rust 已经够难了,async Rust 会让你更头疼。Pin、Unpin、Future、Poll、async trait------这套概念在 async 上下文中的复杂度明显更高。社区里有个说法:"Async Rust 比 Sync Rust 是另一个难度级别",这话说得不夸张。
4. 生态相对年轻
在 GUI、ML、移动端等领域,Rust 的库成熟度还比不上 Java/Python/JS 生态。但差距在快速缩小,尤其在基础设施和工具链领域已经非常成熟。
5. 无正式语言规范
目前 rustc 编译器就是事实规范。对于需要认证的行业(汽车 ISO 26262、航空 DO-178C),这曾经是个障碍。好消息是 Rust Foundation 和 Ferrous Systems 正在推进 Ferrocene Language Specification,正式规范在路上。
6. 招聘有挑战
Rust 开发者的人才池仍然小于 Go/Java/Python。很多公司的策略是招 C/C++ 开发者然后内部培训。好消息是 Rust 的热度持续上升,越来越多的开发者正在主动学习。
Rust vs Go vs C++:怎么选?
这是被问得最多的问题,说说我的理解。
Rust 适合安全敏感、性能关键的场景------操作系统、数据库、网络基础设施、加密系统。你要的是"编译通过就不出内存安全问题"的保证。
Go 适合微服务和云原生场景------goroutine 的并发模型最简单,编译速度快,上手快。你要的是快速开发和部署。
C++ 适合游戏引擎、高频交易等对性能有极致要求且已经积累了大量代码的场景。生态最成熟,但内存安全全靠人。
用一句话总结:Rust 是"编译器帮你保证安全"的语言,Go 是"语言帮你简化并发"的语言,C++ 是"你自己保证一切"的语言。
写在最后
回头看看 Rust 这几年的发展,有一个感受特别深:Rust 的成功不是因为它"比 C++ 好",而是因为它解决了一个真实存在的、代价巨大的问题------内存安全。
每年因为内存安全漏洞导致的损失是天文数字。微软、Google、苹果、Cloudflare 这些公司选择 Rust,不是因为酷,而是因为算过账。
对于普通开发者来说,我的建议是这样的:
如果你在做后端开发,Rust 值得认真学一学。不是要替代你的主力语言,而是多一把好用的锤子。尤其在高性能 API、CLI 工具、数据处理这些场景下,Rust 的优势非常明显。
如果你在做系统编程,Rust 已经不是可选项了,是必修课。
如果你只是好奇,那就从写一个小 CLI 工具开始。ripgrep 的源码是非常好的学习材料。
Rust 不完美,但它代表的方向是对的:让编译器帮你做更多,让你在运行时出更少的错。
这个方向,值得投入时间。