DEV Community

Alex Spinov
Alex Spinov

Posted on

Oxlint Has a Free Linter: 50-100x Faster Than ESLint, Zero Config, 500+ Rules Built In

ESLint changed JavaScript development. But it's 2026, and your linter still takes 30 seconds on CI, requires 15 plugins, and crashes when you add the wrong config extension.

What if your linter ran in milliseconds, needed no plugins, and caught more bugs out of the box?

That's Oxlint — a Rust-based JavaScript/TypeScript linter that's 50-100x faster than ESLint.

Speed Comparison

Project size ESLint Oxlint Speedup
100 files 3.2s 0.03s 106x
1,000 files 28s 0.28s 100x
10,000 files 4.5min 2.8s 96x

This isn't "slightly faster." It's two orders of magnitude.

Quick Start

npx oxlint@latest .
Enter fullscreen mode Exit fullscreen mode

That's it. No config file needed. No plugin installation. It just works.

What Oxlint Catches Out of the Box

500+ rules from these ESLint plugins — built in, not installed separately:

  • eslint core rules (no-unused-vars, no-undef, eqeqeq)
  • typescript-eslint (no-explicit-any, prefer-optional-chain)
  • eslint-plugin-react (jsx-no-target-blank, no-array-index-key)
  • eslint-plugin-react-hooks (rules-of-hooks, exhaustive-deps)
  • eslint-plugin-import (no-duplicates, no-self-import)
  • eslint-plugin-unicorn (better-regex, prefer-array-flat-map)
  • eslint-plugin-jest (no-disabled-tests, valid-expect)
  • eslint-plugin-jsdoc (check-access, check-param-names)
  • eslint-plugin-n (no-deprecated-api)
  • eslint-plugin-promise (no-nesting, always-return)

Configuration (When You Want It)

// .oxlintrc.json
{
  "rules": {
    "no-console": "warn",
    "no-debugger": "error",
    "typescript/no-explicit-any": "error",
    "react/jsx-no-target-blank": "error"
  },
  "ignorePatterns": ["dist/", "node_modules/"]
}
Enter fullscreen mode Exit fullscreen mode

Use Alongside ESLint (Transition Strategy)

Don't rip out ESLint overnight. Use both:

// package.json
{
  "scripts": {
    "lint:fast": "oxlint .",
    "lint:full": "eslint . --cache",
    "lint": "npm run lint:fast && npm run lint:full"
  }
}
Enter fullscreen mode Exit fullscreen mode

Run Oxlint first (milliseconds) → catches 80% of issues → ESLint second for custom/complex rules only.

CI Integration

# .github/workflows/lint.yml
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx oxlint@latest . --deny-warnings
Enter fullscreen mode Exit fullscreen mode

Your lint step goes from 30 seconds to under 1 second.

When to Choose Oxlint

Choose Oxlint when:

  • CI lint time is a bottleneck
  • You want instant feedback in pre-commit hooks
  • Starting a new project — zero config setup
  • You use standard ESLint rules (no custom plugins)

Stick with ESLint when:

  • You rely on custom ESLint plugins with no Oxlint equivalent
  • You need AST-based custom rules for your organization
  • You use eslint-plugin-tailwindcss or other framework-specific plugins

The Bottom Line

Oxlint doesn't try to replace ESLint's extensibility — it replaces its speed. For the 80% of rules everyone uses, Oxlint does it 100x faster with zero setup.

Start here: oxc.rs/docs/guide/usage/linter


Need custom data extraction, scraping, or automation? I build tools that collect and process data at scale — 78 actors on Apify Store and 265+ open-source repos. Email me: Spinov001@gmail.com | My Apify Actors

Top comments (0)