Overview

Both Oxc and BiomeJS represent the shift toward Rust-based JavaScript/TypeScript tooling, offering dramatic performance improvements over traditional tools like ESLint and Prettier. This comparison helps decide which tool fits different project needs.

Quick Comparison

FeatureOxc (oxlint/oxfmt)BiomeJS
Linter StatusProduction ReadyProduction Ready
Formatter StatusAlphaProduction Ready
Linting Speed50-100x faster than ESLint~10-15x faster than ESLint
Formatting Speed30x faster than Prettier20x faster than Prettier
Rule Count610+ rules340+ rules
Type-Aware LintingYes (preview)Yes (v2.0+)
Plugin SystemExperimental (JS plugins)Yes (v2.0+)
Config Complexity.oxlintrc.jsonbiome.json (minimal config)
Bundler IntegrationVite/Rolldown nativeStandalone

Oxc: The Speed Champion

What Oxc Includes

Oxc is a modular compiler suite with individual tools:

Oxc Project
├── oxc-parser ✅ (3x faster than SWC)
├── oxlint ✅ (50-100x faster than ESLint)
├── oxfmt 🚧 Alpha (30x faster than Prettier)
├── oxc-transform ✅ (Babel-compatible)
├── oxc-resolver ✅ (28x faster than enhanced-resolve)
└── oxc-minifier 🚧 Alpha

oxlint Features

  • 610+ rules from ESLint, typescript-eslint, React, Jest, Unicorn, JSX-A11y
  • Type-aware linting (requires oxlint-tsgolint package, preview mode)
  • Multi-core scaling - uses all CPU cores
  • Languages: JS, TS, Vue, Astro, Svelte
  • ESLint migration: Use eslint-plugin-oxlint to disable overlapping rules

oxfmt (Formatter)

  • 30x faster than Prettier
  • Prettier-compatible output (aiming for drop-in replacement)
  • Current Status: Alpha - not production-ready yet

When to Choose Oxc

  1. Vite/Rolldown projects - Native integration in the VoidZero toolchain
  2. Performance-critical CI - Fastest available linting
  3. Large monorepos - Multi-core scaling provides biggest gains
  4. Willing to wait for formatter - Or use Prettier/Biome for formatting

Installation

Terminal window
# Linter only
npm install -D oxlint
# Or run directly
npx oxlint@latest

BiomeJS: The Unified Solution

What BiomeJS Includes

BiomeJS provides a single unified binary:

BiomeJS v2.x
├── Formatter ✅ (Prettier-compatible)
├── Linter ✅ (340+ rules)
├── Type-Aware ✅ (v2.0+)
├── Multi-file ✅ (v2.0+)
└── Plugins ✅ (v2.0+)

Key Features

  • Zero-config defaults - Works out of the box
  • 340+ lint rules from ESLint, typescript-eslint, and custom sources
  • Languages: JavaScript, TypeScript, JSX, JSON, CSS, GraphQL
  • Framework support: Astro, Svelte, Vue (partial)
  • LSP support - First-class editor integration
  • No Node.js required - Standalone binary

Biome v2.0 Features (June 2025)

  • Plugin system - Extend with custom rules
  • Type-aware linting - Without full TypeScript compiler
  • Multi-file analysis - Rules can query other files
  • Block ignores: // biome-ignore-all and // biome-ignore-start/end

Performance

Formatting 1000 files:
- Biome: 50ms
- Prettier + ESLint: 1-2 seconds
Energy usage (macOS M3):
- Biome uses 70% less energy than alternatives

When to Choose BiomeJS

  1. Production projects today - Fully stable formatter + linter
  2. Simpler toolchain - One tool replaces ESLint + Prettier
  3. Plugin needs - Growing ecosystem with v2.0
  4. CSS/GraphQL - Biome supports these; Oxc focuses on JS/TS
  5. Lower migration friction - npx @biomejs/biome migrate eslint

Installation

Terminal window
npm install -D @biomejs/biome
# Migrate from ESLint
npx @biomejs/biome migrate eslint .eslintrc.json

Performance Benchmarks

Linting Speed (relative to ESLint)

ToolSpeed Improvement
oxlint50-100x faster
BiomeJS~10-15x faster
ESLintbaseline

Formatting Speed (relative to Prettier)

ToolSpeed ImprovementStatus
oxfmt30x fasterAlpha
BiomeJS20x fasterStable
Prettierbaseline-

Migration Strategies

From ESLint + Prettier to BiomeJS

Terminal window
# 1. Install Biome
npm install -D @biomejs/biome
# 2. Migrate ESLint config (converts ~70% of rules)
npx @biomejs/biome migrate eslint .eslintrc.json
# 3. Initialize config
npx @biomejs/biome init
# 4. Run
npx biome check --write .

From ESLint to oxlint (keeping Prettier)

Terminal window
# 1. Install oxlint and ESLint plugin
npm install -D oxlint eslint-plugin-oxlint
# 2. Update .eslintrc to use plugin (disables overlapping rules)
# 3. Run oxlint first, then ESLint for remaining rules
npx oxlint && npx eslint .

Hybrid: oxlint + Biome Formatter

For maximum linting speed with production formatting:

Terminal window
npm install -D oxlint @biomejs/biome
# Lint with oxlint
npx oxlint .
# Format with Biome
npx biome format --write .

Recommendation Matrix

Project TypeRecommended Tool
New project, needs stabilityBiomeJS
Vite 8 / Rolldown projectOxc (oxlint) + Biome formatter
Large monorepo, CI speed criticaloxlint + Prettier/Biome
Want unified toolchainBiomeJS
Need CSS/GraphQL lintingBiomeJS
Bleeding edge performanceoxlint + wait for oxfmt

Future Outlook

Oxc

  • oxfmt moving toward stable release
  • Deeper Vite/Rolldown integration
  • Part of VoidZero’s coordinated toolchain vision
  • Focus on maximum performance

BiomeJS

  • Growing plugin ecosystem
  • More framework integrations
  • Type-aware features expanding
  • Focus on unified developer experience

Sources

  1. Oxc Project
  2. Oxc Linter Documentation
  3. BiomeJS
  4. BiomeJS GitHub
  5. Biome vs ESLint 2025 Comparison
  6. Migrating to BiomeJS