返回文章列表

2026 年,用 Rust 写点什么好?

620·4 分钟阅读
Rust项目实践CLI 工具系统编程

"Rust 能写什么?"这个问题问反了。Rust 现在几乎什么都能写,关键是你想解决什么问题。

不聊语法,不聊所有权,就聊聊哪些项目用 Rust 写是真的爽


重写命令行工具——最容易出成果的方向

Rust 社区有个著名的梗:"用 Rust 重写一切"。听起来像玩笑,但这个方向确实已经被验证了无数次。

工具 替代谁 GitHub Stars 一句话评价
ripgrep grep 63k+ 搜代码快到你以为开了挂
bat cat 58k+ 语法高亮 + Git diff,回不去了
fd find 42k+ 用惯了 fd,再用 find 像在受刑
eza ls 21k+ 颜色、图标、tree 模式,ls 的终极形态
zoxide cd 36k+ 记住你去过哪,跳转像有读心术
starship prompt 57k+ 跨 shell 的终端提示符,颜值担当
delta diff 30k+ side-by-side diff,语法高亮,Git 输出从此不同
hyperfine time 28k+ 命令行基准测试,自动多次运行取统计值
dust du 11k+ 磁盘占用一目了然,比 du 好看一百倍
sd sed 7k+ 用正则替换文件内容,语法比 sed 人道多了

为什么 CLI 工具特别适合 Rust?

三个字:快、小、稳

快——Rust 编译出来的二进制直接跑,没有 VM 启动时间,没有 GC 暂停。ripgrep 搜文件比 grep 快 10 倍不是因为它算法多牛,纯粹是语言层面的差距。

小——单个二进制文件,没有依赖,scp 到服务器上就能用。你试过把一个 Node.js CLI 工具部署到服务器上吗?node_modules 的痛,懂的都懂。

稳——编译器帮你挡住了大部分内存问题。CLI 工具跑一次就退出,看起来不那么需要内存安全?但当你处理 GB 级日志文件的时候,一个内存泄漏就能让你的工具变成定时炸弹。

如果你想练手:

最好的项目就是把你日常用的某个脚本用 Rust 重写一遍。Python 写的批量重命名工具?Shell 写的日志分析脚本?用 Rust 重写。性能提升通常在 10-100 倍,而且你会在这个过程中把 Rust 的文件 I/O、命令行参数解析(clap)、正则表达式(regex crate)都过一遍。


Warp:当终端变成 AI 开发环境

2026 年有一件大事:Warp 开源了,49k+ Stars。

Warp 不是传统意义上的"终端模拟器"。它用 Rust 从头写了一个 GPU 加速的渲染引擎(基于 Alacritty),然后在上面搭了一整套 AI 工作流:内置的编码 Agent、命令自动补全、智能错误修复。你可以直接在终端里跟 AI 对话,让它帮你写命令、排查问题、甚至直接修改代码。

为什么 Warp 值得关注?

因为它代表了终端的下一个形态。传统终端(iTerm2、Alacritty、Kitty)本质上是"文本渲染器"——你输入命令,它输出结果。Warp 把终端变成了一个交互式的开发环境,命令输出是结构化的、可搜索的、可复用的。

Rust 在这里发挥了什么作用?

Warp 需要极高的渲染性能(GPU 加速、60fps 滚动)、极低的输入延迟(每次按键都要即时响应)、跨平台一致性(macOS、Linux、Windows)。这三个需求恰好是 Rust 的甜区。Warp 依赖了 Tokio(异步运行时)、Hyper(HTTP)、FontKit(字体渲染)等一系列 Rust 生态的顶级 crate。

对 Rust 开发者的启示:

Warp 证明了一件事——用 Rust 写大型 GUI 应用是可行的。以前大家觉得 Rust 只适合写 CLI 和后端,Warp 用实际行动打了这个脸。如果你对 GPU 渲染、跨平台 GUI、AI 集成感兴趣,Warp 的代码库是一个绝佳的学习资源。


终端 TUI 应用——写给自己用的小工具

TUI(Terminal User Interface)应用是那种"写完之后每天都在用"的东西。

几个做得很好的例子:

  • bottom (btm) — 系统监控工具,htop 的 Rust 版,13k+ Stars
  • gitui — 终端里的 Git 客户端,21k+ Stars,比 tig 好用太多
  • pastel — 颜色工具,终端里选颜色、转换格式
  • tokei — 代码行数统计,支持几百种语言

为什么 TUI 好玩?

因为它是一个你能真正用起来的项目。TUI 工具是你每天打开终端都会敲的东西。而且 TUI 的反馈循环很短——改一行代码,cargo run,立刻看到效果。

Rust 的 TUI 生态现在很成熟:ratatui(20k+ Stars,前身是 tui-rs)提供组件,crossterm 处理跨平台终端事件。写起来比想象的简单。

有意思的点子: 写一个 Git 提交信息查看器——按时间线展示、支持搜索、高亮显示变更文件。这种工具市面上没有特别好用的,而且你能在这个过程中学到 Git 内部原理。


WebAssembly——Rust 的新战场

WASM 是 Rust 最被低估的方向。

Rust 是目前编译到 WASM 体验最好的语言之一。没有 GC(WASM 里没有 GC 运行时),编译出来体积小,性能接近原生。

实际的应用场景:

1. 浏览器端的计算密集型任务

图片处理、音视频转码、加密解密——这些任务以前只能在后端做,现在可以用 Rust 编译成 WASM 直接在浏览器里跑。

2. 插件系统

很多工具现在用 WASM 做插件:编辑器(Zed)、数据库(SQLite 的 WASM 版)、甚至操作系统组件。用 Rust 写一个 WASM 插件,宿主程序加载执行,既安全(沙箱隔离)又高性能。

3. 边缘计算

Cloudflare Workers、Fastly Compute 这些边缘计算平台都支持 WASM。用 Rust 写一个边缘函数,处理 HTTP 请求,延迟比传统后端低一个数量级。

入门代码:

use wasm_bindgen::prelude::*;
 
#[wasm_bindgen]
pub fn fibonacci(n: u32) -> u32 {
    match n {
        0 => 0,
        1 => 1,
        _ => fibonacci(n - 1) + fibonacci(n - 2),
    }
}

wasm-pack build --target web 编译,然后在 HTML 里直接调用。Rust 代码跑在浏览器里,亲眼看到了。


Web 后端——Rust 有自己的位置

Web 后端这个赛道,Go 的生态更成熟、上手更快。但 Rust 有自己的杀手场景。

Rust Web 后端适合什么?

  • 性能敏感的 API 服务:金融交易、实时竞价、游戏服务器——零成本抽象和没有 GC 暂停的优势很明显
  • 需要极致并发的服务:Tokio 的异步运行时性能非常好
  • 长期运行的服务:没有 GC 意味着内存占用稳定,不会像 Java/Node 那样慢慢膨胀

主流框架:

  • Axum (25k+ Stars) — Tokio 团队出品,设计优雅,类型安全的路由和中间件
  • Actix-web (24k+ Stars) — 老牌框架,性能怪兽
  • Rocket (25k+ Stars) — 早期很火,API 对新手友好
use axum::{routing::get, Router};
 
#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(|| async { "Hello, World!" }));
    let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
    axum::serve(listener, app).await.unwrap();
}

判断: 如果团队 Rust 水平 OK,而且对延迟和资源占用有要求,Rust Web 后端值得投入。但如果你只是想快速搭个 CRUD API,Go 或者 Node.js 可能更实际。


数据库和存储引擎——硬核但回报巨大

这是最"系统编程"的方向,也是 Rust 最能发挥优势的地方。

标杆项目:

  • TiKV (16k+ Stars) — 分布式 KV 存储,PingCAP 出品,已进入 CNCF
  • SurrealDB (31k+ Stars) — 多模型数据库,支持 SQL、图、文档
  • DataFusion (8k+ Stars) — Apache 基金会的查询引擎,纯 Rust 实现
  • Polars (38k+ Stars) — DataFrame 库,Pandas 的 Rust 替代品,快到离谱

为什么存储引擎适合 Rust?

存储引擎需要精细控制内存(缓存、内存池、零拷贝),需要高并发(连接池、事务),需要长时间稳定运行(不能有 GC 暂停)。这三个需求恰好是 Rust 的强项。

练手建议: 从一个简单的键值存储引擎开始。实现基于 LSM-Tree 的存储引擎,支持 put/get/delete,能持久化到磁盘。这个项目会让你深入理解 Rust 的文件 I/O、内存管理、并发控制。


游戏和多媒体——不那么主流,但很有意思

  • Bevy (45k+ Stars) — ECS 架构的游戏引擎,社区非常活跃
  • Macroquad (4k+ Stars) — 极简的 2D 游戏库,适合写小游戏和 Game Jam
  • wgpu (17k+ Stars) — WebGPU 的 Rust 实现,跨平台图形 API

有意思的方向: 用 Bevy 写一个小游戏。不需要多复杂,一个贪吃蛇、一个弹球。Bevy 的 ECS 架构会让你重新思考"游戏对象应该怎么组织",这个思维方式跟传统的面向对象游戏开发完全不同。


AI/ML 工具链——新风口

  • uv (84k+ Stars) — Astral 出品的 Python 包管理器,Rust 写的,装包速度比 pip 快 10-100 倍
  • Ruff (47k+ Stars) — Python linter,比 flake8 快几十倍
  • burn (14k+ Stars) — 纯 Rust 的深度学习框架,还在早期但很有野心
  • candle (20k+ Stars) — Hugging Face 出品的 ML 推理框架,轻量级

AI 的核心计算还是 CUDA/Python 的天下。但 AI 的周边工具——数据预处理、模型服务、推理优化、包管理——这些需要高性能和可靠性。Rust 在这个位置上如鱼得水。


最后的碎碎念

选项目比选语言重要。

你不需要等"学完 Rust"才开始写项目。学完所有权和生命周期就可以动手了,边写边学是最快的方式。Rust 的编译器错误信息真的很好——它不只告诉你错了,还告诉你怎么改。

排序建议:

  1. CLI 工具 — 最容易出成果,生态最成熟,练手首选
  2. TUI 应用 — 写给自己用,每天都能看到成果
  3. WASM 工具 — 未来趋势,现在入场正当时
  4. 终端/AI 开发环境 — Warp 开源后这个方向会越来越热
  5. Web 后端 — 对性能有极致追求时考虑
  6. 存储引擎 — 硬核但回报巨大,面试加分项
  7. 游戏 — 纯粹为了好玩
  8. AI 工具 — 风口上的方向

别纠结选哪个,打开编辑器,cargo new my_project,开始写就对了。