ESLint vs Oxlint: Which Linter for CI?
Oxlint is a very fast Rust linter; ESLint is the extensible standard with a vast rule and plugin ecosystem.
ESLint is the established JavaScript/TypeScript linter with thousands of community rules and plugins. Oxlint (part of the Oxc project) is a Rust-based linter focused on speed, often running orders of magnitude faster on large codebases.
| ESLint | Oxlint | |
|---|---|---|
| Implementation | JavaScript | Rust |
| Speed | Slower (plugin overhead) | Very fast |
| Rule / plugin ecosystem | Huge | Smaller, growing |
| Custom plugins | Mature | Limited / evolving |
| Typical role | Full linter | Fast first-pass linter |
In CI
Oxlint can lint large codebases dramatically faster than ESLint, which makes it attractive as a quick CI gate or pre-commit check. ESLint wins on coverage: framework rules, accessibility, import ordering, type-aware rules, and custom plugins. A common pattern is to run Oxlint for a fast first pass and keep ESLint for the rules Oxlint does not yet cover.
Migration effort
Audit your enabled ESLint plugins and rules before relying on Oxlint alone. Many teams adopt Oxlint incrementally alongside ESLint rather than replacing it outright, especially where type-aware or custom rules matter.
The verdict
Want a very fast lint gate and your rule needs are basic or covered: Oxlint. Depend on a wide plugin/type-aware ecosystem: keep ESLint (or run both). Check rule coverage before dropping ESLint.