oxlint
A Rust-based JavaScript and TypeScript linter from the Oxc toolchain. 50–100x faster than ESLint, zero configuration required to start, built-in auto-fix, and a growing set of ESLint-compatible rules.
What is oxlint?
oxlint is a JavaScript and TypeScript linter written in Rust, developed as part of the Oxc (JavaScript Oxidation Compiler) project. It was designed from the ground up to be extremely fast by leveraging Rust's memory safety and parallel processing capabilities. On large codebases oxlint consistently benchmarks 50–100x faster than ESLint, often completing in milliseconds rather than seconds.
oxlint requires zero configuration to start — just point it at a directory and it immediately catches common correctness errors, suspicious patterns, and style issues. It supports JSX and TSX, has a built-in --fix flag, and is designed to be run alongside or as a replacement for ESLint as its rule coverage grows. The official documentation is at oxc.rs.
Key Features
- Written in Rust — delivers 50–100x speed improvements over ESLint; large monorepos lint in milliseconds
- Zero config to start — run
npx oxlint .with no config file required; sensible defaults out of the box - ESLint-compatible rules — covers a growing subset of ESLint core rules with the same names and semantics
- Built-in fix support —
--fixflag auto-corrects fixable issues without extra plugins - JSX and TSX support — understands React syntax and TypeScript generics natively
- Rule categories — correctness, pedantic, suspicious, restriction, and nursery categories for granular control
- Part of Oxc toolchain — integrates with oxc-parser, oxc-resolver, and other Oxc tools for a unified fast pipeline
- Run alongside ESLint — no forced migration; use oxlint as a fast first pass and ESLint for plugin-specific rules
Installation
# Run oxlint without installing (one-shot check) npx oxlint@latest . # Add oxlint as a dev dependency npm add -D oxlint # Lint the current directory npx oxlint . # Lint and auto-fix fixable issues npx oxlint --fix . # Lint a specific file or glob npx oxlint src/ # Lint with a specific rule category enabled npx oxlint --deny correctness .
Adding to package.json Scripts
The simplest integration is to add lint scripts to your package.json. oxlint exits with a non-zero code on errors, making it immediately usable in CI.
// package.json — add a lint script
{
"scripts": {
"lint": "oxlint .",
"lint:fix": "oxlint --fix ."
},
"devDependencies": {
"oxlint": "^0.4.0"
}
} GitHub Actions CI Integration
oxlint fits naturally into any CI workflow. Below is a minimal GitHub Actions example that lints on every push and pull request.
# .github/workflows/lint.yml
name: Lint
on: [push, pull_request]
jobs:
oxlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npx oxlint . Migrating from ESLint
The recommended migration strategy is incremental: run oxlint alongside ESLint first, identify overlapping rules, then progressively reduce ESLint's scope. This is zero-risk and immediately speeds up your CI feedback loop.
# Step 1 — run oxlint alongside ESLint (zero risk) # oxlint catches issues ESLint misses at 50-100x the speed # Step 2 — disable rules in ESLint that oxlint now covers # oxlint outputs a list of covered rules: npx oxlint --rules # Step 3 — once confident, remove ESLint entirely npm remove eslint eslint-config-* eslint-plugin-* npm add -D oxlint
oxlint vs ESLint
| Feature | oxlint | ESLint |
|---|---|---|
| Speed | 50–100x faster (Rust) | Slower (Node.js) |
| Configuration required | None to start | Flat config or .eslintrc required |
| Plugin ecosystem | Limited (growing) | Thousands of plugins |
| Rule coverage | Core + growing | Comprehensive |
| Built-in fix | Yes (--fix) | Yes (--fix) |
| JSX / TSX support | Yes (native) | Requires plugins |
Pros and Cons
Pros
- ✓ Dramatically faster than ESLint — near-instant feedback on large codebases
- ✓ Zero configuration required to start linting immediately
- ✓ Native JSX and TypeScript support without extra plugins
- ✓ Can run alongside ESLint — no forced migration required
- ✓ Actively developed with rapid rule coverage expansion
Cons
- ✗ Plugin ecosystem is much smaller than ESLint's
- ✗ Cannot yet replace ESLint for projects using many community plugins
- ✗ Rule coverage, while growing, is not yet 100% ESLint-compatible
- ✗ Fewer IDE extensions compared to ESLint's mature tooling
- ✗ Still maturing — some APIs and config options may change
Frequently Asked Questions
What is oxlint?▼
oxlint is a JavaScript and TypeScript linter written in Rust, developed as part of the Oxc (JavaScript Oxidation Compiler) toolchain. It is designed to be 50–100x faster than ESLint by leveraging Rust's performance characteristics and parallel processing. It supports JSX, TSX, and a growing set of lint rules compatible with the ESLint rule API.
How does oxlint compare to ESLint?▼
oxlint is dramatically faster than ESLint — benchmarks show 50–100x speed improvements on large codebases. ESLint has a much larger ecosystem with thousands of community plugins and rules. oxlint covers the most commonly used correctness and style rules out of the box. For projects that primarily use the ESLint core rules and popular plugins, oxlint can serve as a drop-in speed upgrade.
Can oxlint fully replace ESLint?▼
Not yet for every project. oxlint covers a large and growing set of rules, but ESLint has thousands of community plugins (eslint-plugin-react, eslint-plugin-import, etc.) that have no oxlint equivalent yet. The recommended migration path is to run oxlint alongside ESLint first, then disable the ESLint rules that oxlint already covers, and gradually reduce ESLint's scope. The oxlint team maintains an ESLint compatibility list.
What rules does oxlint support?▼
oxlint ships with rules across several categories: correctness (logic errors, no-unused-vars), pedantic (stylistic consistency), suspicious (likely bugs), restriction (opinionated constraints), and nursery (new, experimental rules). Run npx oxlint --rules to see the full list of currently supported rules. Coverage of ESLint's built-in rules is extensive and growing rapidly with each release.
Is oxlint stable enough for production CI?▼
Yes. oxlint has been adopted by large projects and is actively maintained by the Oxc team. It follows semantic versioning and the API is stable. The recommended approach is to start with the default rule set and incrementally enable stricter categories. Running it in CI as a fast pre-check alongside a slower ESLint pass is a common production pattern.
How do I integrate oxlint with CI/CD?▼
oxlint is a single binary with no configuration required to start. Add it as a dev dependency (npm add -D oxlint), add a lint script in package.json, and call it in your CI workflow. It exits with a non-zero code when lint errors are found, making it compatible with any CI system (GitHub Actions, GitLab CI, CircleCI, etc.). A minimal GitHub Actions step is just: run: npx oxlint .
Related Products
on GumroadTypeScript Quick Reference Toolkit
5 practical reference files for TypeScript developers: cheatsheet, TS vs JS comparison, 20 utility types with real examples, tsconfig best practices template, and 15 common mistakes guide. Print it. Keep it on your desk.
Buy on Gumroad →Premium Workflow Pack
Production-grade workflows, architecture guides, and deployment scripts for teams that ship. 10 advanced CI/CD workflows (blue-green, canary, E2E, security), 5 architecture deep-dives, code review checklist, PR process guide, and 5 battle-tested Bash deployment scripts.
Buy on Gumroad →DevPlaybook Interview Vault
210+ real technical interview questions with model answers, asked at Google, Meta, Amazon, Microsoft, Stripe, and Shopify. Covers Frontend (55), Backend (55), System Design (50), and DSA (50). Available in English and Traditional Chinese.
Buy on Gumroad →You Might Also Need
SQL to TypeScript Types
Convert SQL CREATE TABLE statements to TypeScript interfaces and Zod schemas. Maps SQL column types to TypeScript with nullability.
Open free tool →
TypeScript Discriminated Union Builder
Build TypeScript discriminated unions visually. Add variants with fields and get type-safe switch statements, type guards, and exhaustive checking code.
Open free tool →
Web Performance Checklist
Interactive web performance checklist covering images, fonts, JavaScript, CSS, caching, and server. Check off items to track your score out of 100 and export as Markdown.
Open free tool →
More Free Tools
Related Articles
Rust and WebAssembly in 2026: From Zero to Production
Learn how to compile Rust code to WebAssembly for blazing-fast web applications. A complete guide covering wasm-pack, wasm-bindgen, web-sys, JavaScript integration, performance optimization, and real-world case studies from Figma, Google Earth, and more.
Bun Runtime for Production 2026: Speed Benchmarks, Node.js Migration & Best Practices
Is Bun ready for production in 2026? Comprehensive guide to Bun runtime performance benchmarks vs Node.js, npm/package migration, built-in bundler, test runner, TypeScript support, and real-world production deployment best practices.
Deno 2 vs Node.js 22 vs Bun: JavaScript Runtime Comparison 2026
In-depth comparison of Deno 2, Node.js 22, and Bun in 2026: performance benchmarks, npm compatibility, TypeScript support, use cases, and which runtime to choose for your next project.
Deno 2.0 vs Node.js: Should You Switch in 2026?
Honest comparison of Deno 2.0 vs Node.js in 2026. npm compatibility, JSR registry, performance benchmarks, security model, and who should (and shouldn't) migrate.
Biome: Replace ESLint + Prettier with One Lightning-Fast Tool (2026)
Biome unifies linting and formatting into one blazing-fast tool. Learn how to set up Biome, migrate from ESLint + Prettier, integrate with CI, and use the VS Code extension.
Enjoying this tool? Get more like it.
Weekly developer tool guides, productivity playbooks & AI tricks. Free. No spam.
Unlock AI-Powered Dev Tools
- ⚡ AI Code Review, Doc Generator & SQL Builder
- ⚡ All premium templates & early access
- ⚡ Member discounts on Gumroad products
$9/mo after trial · Cancel anytime
Want the full toolkit?
Get DevPlaybook Pro
Every template, guide, boilerplate, and automation script in one bundle. 13 premium products — grab them all at once and save big.
MIT licensed · Instant download · No subscription
See what's included → Browse all deals →