DEV Community

Alex Spinov
Alex Spinov

Posted on

Oxlint Has Free Linting 50x Faster Than ESLint — Here's Why Projects Are Switching

ESLint is slow. On large codebases, it takes minutes. Oxlint written in Rust does the same job in seconds.

What is Oxlint?

Oxlint is a JavaScript/TypeScript linter written in Rust by the Oxc project. It is 50-100x faster than ESLint and catches many of the same issues.

Quick Start

npx oxlint@latest
Enter fullscreen mode Exit fullscreen mode

That is it. No config file needed. It works out of the box.

Speed Comparison

Project: 10,000 TypeScript files
ESLint:  45 seconds
Oxlint:  0.8 seconds
Enter fullscreen mode Exit fullscreen mode

50x faster. On CI, this means faster builds and quicker feedback.

What It Catches

// Catches: no-unused-vars
const unused = 42;

// Catches: no-debugger
debugger;

// Catches: no-console (configurable)
console.log("debug");

// Catches: eqeqeq
if (x == null) {} // Should be ===

// Catches: no-empty
try {} catch (e) {}

// Catches: no-constant-condition
if (true) {}

// Catches: no-self-compare
if (x === x) {}
Enter fullscreen mode Exit fullscreen mode

Configuration

// .oxlintrc.json (optional)
{
  "rules": {
    "no-console": "warn",
    "no-debugger": "error",
    "eqeqeq": "error",
    "no-unused-vars": "warn"
  },
  "ignore_patterns": ["dist/**", "node_modules/**"]
}
Enter fullscreen mode Exit fullscreen mode

CLI Options

# Lint specific files
oxlint src/

# Fix auto-fixable issues
oxlint --fix

# Specific rules
oxlint --deny no-debugger --warn no-console

# Output formats
oxlint --format json
oxlint --format github  # GitHub Actions annotations
Enter fullscreen mode Exit fullscreen mode

Use Alongside ESLint

Oxlint is designed to complement ESLint, not replace it entirely. Use Oxlint for the fast checks it supports, keep ESLint for plugin-specific rules.

// package.json
{
  "scripts": {
    "lint": "oxlint && eslint --no-eslintrc -c .eslintrc.plugins.json src/",
    "lint:fix": "oxlint --fix && eslint --fix src/"
  }
}
Enter fullscreen mode Exit fullscreen mode

Rules Coverage

Oxlint supports 400+ rules from:

  • eslint (core rules)
  • typescript-eslint
  • eslint-plugin-react
  • eslint-plugin-react-hooks
  • eslint-plugin-jsx-a11y
  • eslint-plugin-import
  • eslint-plugin-unicorn
  • eslint-plugin-jest
  • eslint-plugin-jsdoc

Oxlint vs ESLint vs Biome

Feature Oxlint ESLint Biome
Speed 50-100x faster Baseline 10-20x faster
Language Rust JavaScript Rust
Config Optional Required Optional
Plugins No 2000+ No
Formatter No No Yes
Drop-in Mostly N/A Partial

Need to lint scraping code? Check out my production-ready actors on Apify Store — clean, linted code that just works. For custom solutions, email spinov001@gmail.com.

Top comments (0)