当前位置: 首页 > news >正文

Oxc:基于Rust构建高性能JavaScript全栈工具链

Oxc(The Oxidation Compiler)是一个用Rust编写的高性能JavaScript和TypeScript工具集合,提供了极速的开发体验。无论你是前端开发者还是Rust爱好者,这个完整的教程将帮助你在5分钟内快速搭建JavaScript开发环境!

什么是Oxc?

Oxc是一个基于Rust构建的现代化JavaScript工具链,包含解析器(Parser)、格式化器(Formatter)、代码检查器(Linter)、转换器(Transformer)和压缩器(Minifier)等核心组件。Oxc的设计目标是提供极致性能和开发者友好的体验。

image

Oxc官方文档:https://www.oxcjs.com/

如果你写过超过10万行的前端项目,一定对这种场景不陌生:保存代码后,编辑器右下角的ESLint图标转个不停;CI流水线里,静态检查环节占了80%的时间;改一行代码,热更新要等3秒以上。

这些问题的根源很简单:我们用JavaScript写的工具,已经跟不上JavaScript项目的规模了。直到Oxc出现。

先搞清楚:Oxc到底是什么?

很多人说Oxc是“Rust写的ESLint”或者“更快的Prettier”,这都太小看它了。

Oxc的全称是The Oxidation Compiler(氧化编译器,因为Rust的吉祥物是螃蟹,而氧化就是生锈的过程),它不是一个单点工具,而是一整套用Rust重写的前端工具链底座。它把前端开发最核心的6件事——解析、lint、格式化、转换、模块解析、压缩——全部重新做了一遍,而且每一件都做到了当前最快。

更重要的是,它不是把这些工具简单地堆在一起,而是从架构上让它们共享同一个底层。这才是它能比现有工具快几十上百倍的根本原因。

为什么Oxc能快到离谱?

很多人会说“因为用了Rust”,但这只是一半的答案。Biome也是Rust写的,但Oxc比它还要快3倍左右。真正拉开差距的,是Oxc的架构设计。

1. 内存管理:把GC彻底踢出编译流程

JavaScript写的工具最大的性能瓶颈是什么?是垃圾回收(GC)。ESLint在遍历AST的时候,会创建几百万个对象,然后又丢弃,这会触发频繁的GC,把CPU时间都浪费在内存管理上。

Oxc用了一种叫Arena Allocation(区域分配)的技术。简单说,就是在编译开始前,一次性开辟一块大的连续内存,所有AST节点都在这块内存里分配,编译结束后,一次性把整块内存释放。

没有了频繁的malloc和free,没有了GC停顿,内存访问的局部性也大大提升,性能自然就上去了。

2. 零拷贝解析:能不复制就不复制

传统的解析器在处理字符串的时候,会把每个token都复制一份新的字符串对象。比如解析const name = "oxc",会为constnameoxc分别创建新的字符串。

Oxc的解析器几乎不做任何复制。它所有的token都只是指向原始源代码的一个引用(起始位置和长度)。整个解析过程,除了AST节点本身,几乎没有额外的内存分配。

这不仅节省了内存,更重要的是节省了内存带宽——这在现代CPU上是比计算更宝贵的资源。

3. 共享AST:一次解析,多次使用

这是Oxc最核心的架构优势,也是它和所有其他工具最大的区别。

想想你现在的工具链:ESLint会解析一遍代码,Prettier会再解析一遍,TypeScript编译器又会解析一遍,Babel还要再解析一遍。同样的代码,被不同的工具重复解析4、5次,这是多大的浪费?

Oxc的设计是:解析一次,生成一个AST,然后所有工具(lint、format、transform、minify)都共享这个AST

这意味着,当你运行oxlint && oxfmt的时候,代码只会被解析一次。未来,当Oxc的工具链完全成熟后,你的整个构建流程可能只需要解析一次代码,这带来的性能提升是指数级的。

现在就能用的工具,每一个都能让你爽到

Oxc不是一个画饼的项目,它的核心工具已经非常成熟,完全可以在生产环境使用。

Oxlint:让ESLint看起来像个古董

Oxlint是Oxc生态里最成熟的工具,也是目前最快的JavaScript linter。

官方数据是比ESLint快50-100倍,这不是跑分,是真实项目里的实测数据。我自己的一个30万行的React项目,ESLint全量检查要跑1分20秒,Oxlint只需要1.2秒。

更重要的是,它的兼容性做得非常好:

  • 已经实现了700+条规则,覆盖了ESLint核心和大部分常用插件(React、TypeScript、Import、Unicorn等)
  • 支持ESLint的JS插件,你现有的自定义规则几乎不用改
  • 提供了自动迁移工具@oxlint/migrate,能一键把你的.eslintrc转成Oxlint配置
  • 支持真正的类型感知lint,用的是微软官方的TypeScript Go端口(tsgo),而不是自己实现的类型系统

现在很多大公司已经把ESLint换成了Oxlint,包括Elastic、Sentry、PostHog这些明星项目。

Oxfmt:格式化再也不会卡了

Prettier什么都好,就是太慢了。格式化一个大文件要等好几秒,这在写代码的时候是非常打断思路的。

Oxfmt比Prettier快30倍,比Biome快3倍。在我的机器上,格式化整个项目(1000多个文件)只需要0.3秒,快到你几乎感觉不到它的存在。

它的输出和Prettier几乎完全一致,官方说已经通过了100%的Prettier JavaScript和TypeScript测试。任何格式化差异都会被当作bug处理。

而且它内置了很多Prettier需要插件才能实现的功能:

  • 导入排序
  • Tailwind CSS类排序
  • package.json字段排序
  • 嵌入式格式化(CSS-in-JS、GraphQL等)

替换Prettier几乎不需要改任何配置,只要把prettier命令换成oxfmt就行。

其他工具:正在快速补齐

除了lint和format,Oxc的其他工具也在快速成熟:

  • Parser:比SWC快3倍,通过了所有Test262 Stage4测试,是目前最标准的JS/TS解析器
  • Transformer:替代Babel,支持TypeScript、JSX转换,React Fast Refresh等
  • Resolver:比webpack的enhanced-resolve快28倍,行为完全一致
  • Minifier:还在alpha阶段,但已经比Terser快很多,未来会成为Rolldown的默认压缩器

Oxc的真正野心:统一整个前端工具链

如果Oxc只是做了更快的ESLint和Prettier,那它还不足以被称为“未来的底座”。它真正的目标,是成为整个前端生态的基础设施。

你可能已经听说过Rolldown——Vite未来的默认打包器。而Rolldown,就是完全构建在Oxc之上的。

Vite 8已经默认使用Rolldown作为打包器,这意味着:

  • 模块解析用的是oxc-resolver
  • 代码转换用的是oxc-transformer
  • 代码压缩用的是oxc-minifier

也就是说,当你升级到Vite 8的时候,你已经在不知不觉中使用Oxc了。

这只是开始。未来,TypeScript编译器、测试运行器、代码分析工具……所有和JS/TS处理相关的工具,都可能基于Oxc构建。

现在就可以开始用了

如果你想体验Oxc带来的速度提升,现在就可以动手:

1. 替换ESLint

pnpm add -D oxlint

然后把package.json里的lint脚本改成:

{"scripts": {"lint": "oxlint","lint:fix": "oxlint --fix"}
}

2. 替换Prettier

pnpm add -D oxfmt

脚本改成:

{"scripts": {"fmt": "oxfmt . --write","fmt:check": "oxfmt . --check"}
}

就是这么简单。不需要改任何配置,不需要学习新的语法,你就能获得几十倍的速度提升。

最后说几句

前端工具链已经停滞太久了。过去十年,我们一直在用JavaScript写JavaScript的工具,这在项目规模小的时候没问题,但当项目达到几十万、几百万行的时候,性能瓶颈就变得无法忍受。

Oxc的出现,不是对现有工具的简单优化,而是一次范式转移。它证明了,用系统级语言重写前端工具链,能带来数量级的性能提升。

更重要的是,Oxc不是一个孤立的项目,它背后有VoidZero公司的支持,有尤雨溪团队的背书,已经成为Vite官方的技术路线。这意味着,它不会像很多开源玩具一样半途而废。

如果你还在被缓慢的工具链折磨,现在就试试Oxc吧。它不会让你失望的。

http://www.jsqmd.com/news/764844/

相关文章:

  • 从零开始学习SEO,实现网站流量的突破与增长
  • ICLR 2026 | Earth-Agent:地球科学智能体来了!
  • 2026年自贡全案整装与智能家居装修深度横评:本地一站式家装避坑指南 - 优质企业观察收录
  • Blender植物建模避坑指南:从PS抠图到Unity导入,彻底解决白边白底问题
  • 网盘直链下载助手:一键获取9大网盘真实下载地址的完整指南
  • AI对话系统安全架构设计与实践指南
  • 认知无线电频谱共享下的多用户分集模型MATLAB实现
  • 论文“智造”新纪元:书匠策AI——毕业论文的“智能外挂”
  • 2026年成都气调冷库厂家观察:东杰宏图制冷以技术深耕定义冷库建设 - 深度智识库
  • 三步搞定抖音内容下载:无水印批量下载终极指南
  • 保姆级教程:从Gitee克隆到编译运行,手把手玩转星宸SSD20x/SSD21X官方Demo
  • 5款AI写论文助手!一分钟生成万字论文!告别写论文的痛苦!现在就用起来! - AI论文先行者
  • 2026年自流井区全案整装与智能家居装修完全指南:本地装修公司精准选型避坑手册 - 优质企业观察收录
  • 开源游戏汉化实战:从文本提取到字体替换的完整技术流程
  • 揭秘书匠策AI:毕业论文写作的“超级外脑”来袭!
  • 从ADC到DAC:基于PCF8591的蓝桥杯单片机‘数模转换’全流程解析
  • 终极指南:如何用智能自动化工具解放你的鸣潮游戏时间
  • 实验室4篇论文被ICML 2026录用
  • 3分钟上手:如何用开源可视化工具将数据变成精美图表
  • 3分钟搞定B站视频本地化:这个Python工具让你永久保存4K大会员内容
  • 如何让2008-2017年老Mac升级到最新macOS?OpenCore Legacy Patcher完整指南
  • 京东e卡回收一般几折 正规回收平台怎么选 - 畅回收小程序
  • GitHub 中文插件:3分钟让全球最大开发者平台说你的语言
  • 用JSBSim+AirSim搭建你的第一个固定翼无人机仿真:从模型文件配置到可视化飞行
  • 论文通关秘籍大公开:书匠策AI——毕业论文的“智能外挂”
  • 5大革新特性深度解析:Pearcleaner如何重塑macOS应用清理体验
  • CVPR 2026 Oral|横扫室内3D场景!港科大提出LegoOcc:刷新单目开放词汇占据预测SOTA
  • 为内部AI工具平台集成Taotoken实现模型资源的统一调度
  • 2026年北京专业消杀公司深度横评:臻洁虫控与行业主流品牌全景解析 - 企业名录优选推荐
  • Windows驱动管理终极指南:用DriverStore Explorer轻松释放数GB磁盘空间