为什么前端工具开始用 Rust 重写?一场工具链革命
最近几年,如果你关注前端工程化,会发现一个很明显的趋势:
越来越多的前端工具开始用 Rust 重写。
例如:
esbuild
swc
rolldown
oxc
biome
很多人第一次看到这些项目时都会疑惑:
前端工具不是 JavaScript 写的吗? 为什么突然开始用 Rust?
其实这背后,是整个前端工程化的一次 技术升级。
一、JavaScript 工具链的问题
过去十几年,绝大多数前端工具都是用 JavaScript 写的。
例如:
Webpack
ESLint
Babel
Rollup
这种方式有一个明显好处:
生态统一。
开发者可以用同一种语言开发工具。
但随着项目规模越来越大,这种模式也开始暴露问题:
性能瓶颈。
例如在一个大型项目中:
ESLint
可能需要 20 秒
而 Babel 编译大型项目时:
可能需要几十秒
当项目越来越大时,这些工具的运行时间会越来越长。
于是很多团队开始思考一个问题:
有没有更快的实现方式?
二、Rust 带来的性能优势
Rust 是一种系统级语言。
它的特点是:
高性能
内存安全
并发友好
对于工具链来说,这几个特点非常重要。
因为前端工具通常需要做很多事情:
-
解析代码 -
AST 转换 -
打包 -
压缩 -
lint 检查
这些任务本质上都是:
CPU 密集型任务。
Rust 在这种场景下通常比 JavaScript 快很多。
例如:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
很多项目的 lint 时间可以从:
30 秒
降低到:
1 秒
三、Rust 工具链正在形成
最近几年,其实已经出现了一整套 Rust 前端工具链。
例如:
构建工具
esbuild
rolldown
编译工具
swc
oxc
Lint 工具
oxlint
biome
这些工具的目标都很一致:
替代旧的 JavaScript 工具。
四、Vite 生态为什么拥抱 Rust?
如果你最近关注 Vite 生态,会发现很多新项目都在使用 Rust。
例如:
Rolldown
Oxc
Oxlint
这些项目都来自:
VoidZero 团队。
这个团队的目标很明确:
打造下一代前端工具链。
例如:
-
Rolldown:替代 Rollup -
Oxlint:替代 ESLint -
Oxc:新的 JS 工具链
这些工具未来可能会成为:
Vite 的默认工具。
五、Rust 工具为什么越来越多?
其实不仅是 Vite 生态。
整个前端社区都在向 Rust 工具迁移。
例如:
|
|
|
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
原因其实只有一个:
速度。
当项目规模越来越大时:
构建时间往往成为开发体验的最大瓶颈。
如果一个工具能把构建时间从:
30 秒
降低到:
2 秒
开发效率会明显提升。
六、对前端开发者意味着什么?
很多人会担心:
前端工程师是不是也要学 Rust?
其实不需要。
对于大多数开发者来说:
Rust 只是 工具的实现语言。
我们依然可以像以前一样使用这些工具:
例如:
vite
或者:
vite build
背后可能已经是 Rust 工具在运行。
但对开发体验来说是透明的。
七、未来的前端工具链
如果按照现在的发展趋势,未来的工具链可能会变成:
开发服务器:
Vite
构建工具:
Rolldown
Lint:
Oxlint
测试:
Vitest
部署:
Void
这些工具很可能会组成:
下一代前端开发平台。
总结
过去十年,前端工具链主要由 JavaScript 实现。
而现在,一个新的趋势正在出现:
Rust 工具链。
这种变化带来的最大价值就是:
更快
更稳定
更适合大型项目
未来几年,我们很可能会看到越来越多的前端工具:
用 Rust 重写。
互动问题
你们现在项目的构建速度大概是多少?
10 秒
30 秒
1 分钟
有没有尝试过:
swc
esbuild
rolldown
这些新工具?
欢迎留言聊聊 👇
夜雨聆风