12 月 12 日,Oxlint 正式发布,这是一个 Java linter,旨在捕获错误或无用的代码,默认情况下不需要任何配置。根据官方的介绍,Oxlint 使用 Rust 编写,速度比 ESLint 快 50-100 倍!
Oxlint 是 OXC 工具集的其中一个工具,用于捕获错误或无用的代码,作用和 ESLint 类似。
OXC 是字节跳动出品的一个用 Rust 编写的 Java 高性能工具集合,该项目的重点在于构建 Java 的基本编译器工具:解析器、linter、格式化程序、转译器、压缩器和解析器。此外,OXC 还为 Rspack、Rolldown 和 Ezno 等新兴 Java 工具提供支持。
现阶段,oxlint无意完全取代 ESLint;当 ESLint 的缓慢成为工作流程中的瓶颈时,它可以作为增强功能。
在现实场景中,Shopify 报告称,他们的 75 CI 分钟 ESLint 运行现在只需 10 秒。大部分性能提升源于 Oxlint 专门针对性能而设计,利用 Rust 和并行处理作为关键因素。
Oxlint 默认识别错误、冗余或令人困惑的代码 ,万博max体育官方网站优先考虑正确性而不是不必要的挑剔规则(分类为 perf、suspicious、pedantic 或 style),默认情况下禁用。
Oxlint 默认识别代码中的错误、冗余或令人困惑的部分。它的设计原则是优先考虑代码正确性,而不是过度挑剔的规则。Oxlint 将问题分类为 perf(性能)、suspicious(可疑)、pedantic(追求细节)或 style(风格),默认情况下这些规则是禁用的。
Oxlint 的设计目标之一是提供零配置的开箱即用体验,以减少设置新的 Java/Type 代码库时可能遇到的兼容性问题。它甚至不需要 Node.js 环境来运行,并且可以从现有的 ESLint 配置文件中读取当前项目的配置,简化了调整和集成的过程。
理解代码检查工具的消息可能会很具有挑战性。Oxlint 的目标是通过准确定位根本原因并提供有用的提示来简化此过程,从而消除了阅读冗长规则文档的需求,节省时间。
Oxc 团队深知在 Java 生态系统中插件的重要性,并且正在研究基于DSL的插件系统。
不过,用户也可能会喜欢一个独立的代码检查工具,它无需管理插件依赖列表,避免兼容性问题,或因版本限制而使用分叉插件。
Vue.js 的作者尤雨溪表示,在对 Vue 3 的代码库进行测试时,测试了约 200 条规则 + 约 590 个文件,在 50 毫秒内就完成了,再次运行仅用了 30 毫秒。
Moonrepo 的创建者表示,oxlint(和 oxc 工具)真是太疯狂了。不仅在性能上,而且在操控性上。依靠 Rust 是一个不错的选择!
Preact 的作者表示,oxlint 对 Shopify 来说是一个巨大的胜利,之前的 linting 需要 75 分钟才能运行,因此将其分散到 CI 中的 40 多个 worker 中。相比之下,oxlint 在单个 worker 上检查相同的代码库大约需要 10 秒,并且输出更容易解释。