Oxlint vs ESLint: Which JS Linter for CI?
Oxlint (from the Oxc project) is a Rust-based linter that runs orders of magnitude faster than ESLint, which keeps the complete rule and plugin ecosystem.
ESLint is the standard JavaScript/TypeScript linter with the largest rule and plugin set. Oxlint is a Rust-based linter focused on speed, covering many common rules with near-zero configuration and improving coverage over time.
| Oxlint | ESLint | |
|---|---|---|
| Implementation | Rust | JavaScript |
| Speed | Extremely fast | Slower |
| Rule coverage | Many common rules, growing | Complete, largest |
| Plugin ecosystem | Limited, growing | Largest |
| Config | Near zero | Flexible |
In CI
Oxlint can lint huge codebases in a fraction of ESLint's time, which makes it attractive as a fast first-pass gate. It does not yet cover every ESLint rule or plugin, so many teams run Oxlint for speed and keep ESLint for the rules Oxlint lacks - often Oxlint on every push and a fuller ESLint pass less frequently. If you depend on custom or framework-specific plugins, ESLint remains essential.
Use them together
Run Oxlint as a fast pre-check and ESLint for the rules it does not cover; cache nothing special since linting is CPU-bound. Both run on CI runners; faster managed runners shorten the ESLint pass on large repos.
The verdict
Want an ultra-fast lint pass and your critical rules are covered: Oxlint (often alongside ESLint). Need the complete rule and plugin ecosystem: ESLint. Many teams pair them - Oxlint for speed, ESLint for coverage.