你有没有这种感觉:装了一圈工具,结果它们全是同一个语言写的。pnpm 12 用 Rust 重写了,Vite 8 用 Rolldown 做打包,Rolldown 底层是 Oxc,Oxc 是纯 Rust。连 linter 和 formatter 都是 Biome(Rust)和 Oxfmt(Rust)。这就是 2026 年 9 月的现实。
你可能没注意到,你每天在跑的
npm run build、npm run lint、npm run format,每一步的核心逻辑大概率已经不是 JavaScript 了。整个 npm 生态的「心脏」,在 2026 年悄悄被 Rust 换了。
一、从"等它想清楚"到"秒完"
先看一个真实场景。
2020 年前后,一个 10 万行代码的 monorepo,Webpack 热更新要等 8 秒,ESLint 全量检查 12 秒,代码压缩 8 秒。每次改一行代码,等它「想清楚」的时间比写代码的时间还长。
这是 JavaScript 工具链的先天缺陷。解析 AST、类型检查、代码转换------这些 CPU 密集型任务,在 Node.js 上只能用一个核。大型项目的全量构建常常超过 5 分钟。
现在呢?
拿一个真实的中型 React 项目(约 5 万行代码、300+ 组件)来对比:
| 操作 | JS 方案 | Rust 方案 | 提速 |
|---|---|---|---|
| 全量构建 | Webpack 5: 45s | Rspack: 3.2s | 14x |
| 热更新 | Webpack: 2.8s | Rolldown: 50ms | 56x |
| 全量检查 | ESLint: 12s | Oxlint: 0.3s | 40x |
| 代码压缩 | Terser: 8s | SWC: 0.4s | 20x |
| TS 解析 | tsc: 15s | oxc-parser: 0.15s | 100x |
这些不是实验室数据,是开发者在 GitHub Issues 和技术博客里反复验证的实测结果。
二、Rust 现在到底覆盖了哪些环节?
如果用一个列表来描述 2026 年 9 月前端工具链的 Rust 覆盖情况,大概是这样的:
已完成 Rust 化的环节:
- 代码解析:SWC / Oxc parser
- 代码转译:SWC / Rolldown
- 代码检查:Oxlint(比 ESLint 快 40 倍)
- 代码压缩:SWC Minifier(比 Terser 快 20 倍)
- 代码打包:Rspack / Rolldown(Vite 8 默认引擎)
- 代码格式化:Oxfmt(比 Prettier 快 30 倍)
- CSS 处理:Lightning CSS / Tailwind v4 Oxide 引擎
- 包管理:pnpm 12(Rust 重写)
- 运行时:Bun 2.x(运行时+打包+包管理)
也就是说,你跑 npm run build 到 npm run lint 到 npm run format,每一步的核心逻辑现在大概率都是 Rust 在跑。
三、三个关键玩家的落地情况
Rolldown:Vite 8 的"换心手术"
Rolldown 是用 Rust 重写的 Rollup,目标是一行不动地跑所有 Rollup 插件,同时把性能提升 10-30 倍。它现在是 Vite 8 的默认引擎。
真实项目的反馈:
- Linear:生产构建从 46 秒降到 6 秒
- Ramp:构建时间下降 57%
- Beehiiv:优化幅度 64%
对现有项目来说,Vite 8 的配置基本兼容,升级后改动极小。
Rolldown 内置了 minify、jsx 和 WASM 支持,不用像以前那样装一堆插件。
Oxc:比 ESLint 快 40 倍的代码检查器
Oxc 不是单个工具,是一个工具箱,里面装着 parser、linter、transform、formatter,都用 Rust 写的。
为什么快? 传统 ESLint 用 V8 解析 JavaScript,Oxc 用 Rust。Rust 没有 GC 停顿,内存布局是确定的,同样的解析任务 Rust 就是比 JavaScript 快一到两个数量级。
实际用起来:Oxlint 有 ESLint 兼容层,.eslintrc 大部分规则可以直接迁移。Shopify、Airbnb、Mercedes-Benz 都在 CI 里跑了 Oxlint 作为第一道门禁,替代了原来的 ESLint。
8 月 18 日,Oxc 团队宣布正式支持 React Compiler ------Oxlint 现在包含 22 条由 React Compiler 驱动的规则,oxc-transform-react 包可以直接在 Oxc AST 上运行 React Compiler 的自动 memo 逻辑。速度比 Babel 快 10 倍以上。
pnpm 12:Rust 重写,热安装从 472ms 压到 15ms
2026 年 9 月第二周,pnpm 12 正式发布。这是 pnpm 从 JavaScript/TypeScript 迁移到 Rust 之后的第一个稳定版本。
最关键的是:v11 的几乎所有命令、标志和锁文件格式都沿用了下来,只有少量改动。换句话说,你不需要改任何命令,不需要改任何配置,底层已经用 Rust 重写了。
pnpm 12 用 Rust 重写后,热安装从 472ms 压到了 15ms。空闲 CPU 使用率降低 5 倍,内存使用最多减少 35%。
四、为什么是 Rust?
三个关键词:
- 原生速度:Rust 编译成机器码直接运行,没有 JIT 预热,没有解释器开销
- 真正并行:Rust 原生支持多线程,可以同时用多个 CPU 核心
- 内存安全:Rust 的借用检查器在编译阶段拦截内存错误,没有 GC 停顿
Bun 的案例最能说明问题:Bun 花 11 天、64 个 Claude 并行,用 AI 重写了 101 万行 Zig 代码为 Rust------1.3 万个 unsafe 里,70% 被 Rust 静态分析识别为可移除。
Rust 在"极致性能"和"内存安全"之间找到了平衡点------这正是编译器、打包器、解析器这类基础设施工具最需要的组合。
五、有人踩过的坑
Rust 工具链也不是完美的:
-
插件生态还在过渡期 。Rolldown 和 Oxlint 都面临同一个选择:保持纯 Rust 的高性能,还是兼容 JS 插件的生态。用了
@rollup/plugin-typescript的项目需要改成 tsx 或直接让 Rolldown 内置的 TypeScript 处理器接管。 -
部分高级功能暂时缺失。有些高级 ESLint 插件功能在 Oxlint 里暂时没有。
-
迁移需要策略 。生产项目建议先用
npx oxlint --plugin-typescript跑 CI 里做 type-aware 检查,把传统的eslint --cache当作降级方案。
六、接下来怎么跟?
如果你想跟上这波 Rust 化的节奏:
- 先跑一遍体验速度 :
npx oxlint --fix .和npx oxfmt --write .,感受一下什么叫"秒级" - 看 CI:检查 CI 里有没有在跑老工具链(ESLint/Prettier/ts-jest),逐步切到 Rust 版本
- 升级 Vite:如果项目在用 Vite,升级到 Vite 8,Rolldown 带来的提速立竿见影
- 升级 pnpm :
pnpm self-update next-12,命令不变,速度翻倍 - 盯 VoidZero:Cloudflare 收购 VoidZero 后,会不会把这套 Rust 工具链整合进 Pages/Workers------那才是真正的大杀器
写在最后
2026 年 9 月,整个 npm 生态的「心脏」都被 Rust 换了。
从 Parser 到 Linter 到 Bundler 到 Formatter 到包管理到运行时------整条工具链,从转译到打包到格式化到包管理,所有环节都被 Rust 重写了一遍。
Vite 8 默认引擎是 Rolldown(Rust)。Next.js 16 的 Turbopack 是 Rust。Tailwind v4 的 Oxide 引擎是 Rust。pnpm 12 是 Rust。Bun 2.x 是 Rust。Oxc 工具链全套是 Rust。
Rust 不是前端工具链的"未来",是 2026 年 9 月已经发生的现实。
你不需要学 Rust。你只需要升级,然后感受速度。