Rust 重写代码格式化器,Oxfmt 宣称比 Prettier 快 30 倍,前端工具链要“统一口径”了?

作者:Daniel Curtis
  • 2026-01-30
    北京
  • 本文字数:1434 字

    阅读完需:约 5 分钟

VoidZero 近日宣布推出 Oxfmt 的 Alpha 版本。这是一款基于 Rust 实现的代码格式化工具,面向 JavaScript 与 TypeScript 项目,目标是在大幅提升性能的同时,保持与 Prettier 输出结果的高度一致。作为 VoidZero 更大规模 Oxc 工具链计划的一部分,Oxfmt 在官方测试中展现出比 Prettier 快 30 倍以上的格式化速度,同时与 Prettier 的兼容度超过 95%。

Oxfmt 试图解决 JavaScript 生态中一个长期存在的矛盾:性能与习惯之间的冲突。一方面,Rust 工具链在性能上优势明显;另一方面,Prettier 已成为事实上的格式化标准。Oxfmt 将两者结合,既利用 Rust 带来的性能提升,又严格对齐 Prettier 的格式化风格,使其可以作为 Prettier 的“即插即用”替代方案,开发者迁移时几乎不需要承受格式差异带来的成本。

Oxfmt 的开发动机,部分来自 VoidZero 在 2025 年初发布 Oxlint 之后收到的大量用户反馈。根据官方公告,用户反复提出对“样式类能力”的需求,例如 import 排序。VoidZero 团队对此采取了明确的工具边界划分:Lint 工具负责逻辑问题,Formatter 只关注代码风格。通过同时提供 Oxlint 与 Oxfmt,团队希望减少配置复杂度,并避免在多个工具之间反复关闭重叠规则。

在性能方面,官方基准测试显示:在无缓存的首次运行中,Oxfmt 的速度约为 Biome 的 3 倍、Prettier 的 30 倍。Oxfmt 构建在 Oxc 编译器栈之上,刻意规避了现有格式化工具中常见的架构瓶颈,因此在大型代码库和 CI 场景下表现尤为突出。

从 Prettier 迁移到 Oxfmt 对多数项目来说相当简单。开发者只需将现有的 .prettierrc 配置文件重命名,即可直接使用 Oxfmt。当前版本已支持包括 singleQuote、printWidth 在内的多项主流 Prettier 配置,完整列表可在官方文档中查阅。虽然 Oxfmt 目前通过了约 95% 的 Prettier JavaScript 和 TypeScript 测试用例,但 VoidZero 也在持续向 Prettier 提交 Bug 报告和 Pull Request,以进一步缩小两者之间的差异。

开发者 Ryan Leichty 在 X(原 Twitter)上回应作者相关帖子时表示:

我们已经切到 oxlint 了,oxfmt 真的等不及了。

参数状态管理工具 nuqs 的官方账号,则在评论 Oxfmt 新增 Tailwind CSS 支持时写道:

对 Biome 来说,直接被秒。很期待用 oxfmt 替换 Prettier(顺便也可能把 oxlint 一起试了)。

在 Reddit 上,也有用户围绕 Oxfmt 与 Biome 的性能差异提出疑问

不错啊,但有点好奇,他们是怎么做到比同样是 Rust 的 Biome 快这么多的?

对此,有人回应称,关键区别在于两者的架构设计:

架构完全不一样,而且对性能这件事是真的“较真到偏执”。

从更广泛的工具生态来看,Oxfmt 与 Biome、Prettier 一同构成了 JavaScript 和 TypeScript 领域的主要格式化工具选择。Prettier 仍然是采用最广泛的事实标准;Biome 则通过将 lint 与 format 合并到单一工具中逐渐获得关注。Oxfmt 的差异化路径在于:在保持 Prettier 兼容性的前提下,提供超越两者的性能表现。与 Biome 类似,Oxfmt 也构建在 biome_formatter 的一个分支之上,VoidZero 在公告中特别致谢了 Biome 与 Rome 团队的基础性贡献。

展望即将到来的 Beta 版本,VoidZero 正在推进多项实验性能力的稳定化工作,包括内置 import 排序、CSS-in-JS 的嵌入式语言格式化等功能。同时,团队也在研究为 Vue、Svelte、Astro 等主流框架提供插件支持。开发者可以通过项目的 GitHub Discussions 提交问题和反馈,或加入官方 Discord 社区参与讨论。

原文链接:

https://www.infoq.com/news/2026/01/oxfmt-rust-prettier/