tl;dr; oxlint is as fast as biome and oxlint --type-aware a bit slower but they accomplish slightly different things.

oxlint is a JavaScript/TypeScript linter. Like eslint, but newer and faster. They recently added "type-aware", via a oxlint-tsgolint which uses the Go powered typescript-go port of tsc.

But I like Biome and use it on all my side projects because it combines what eslint and prettier does but does it incredibly fast(er).

To compare oxlint vs. biome we need to check with and without type-aware linting: hyperfine "bunx oxlint --type-aware" "bunx biome check" "bunx oxlint"
The results are:

Benchmark 1: bunx oxlint --type-aware
  Time (mean ± σ):     560.4 ms ±  34.4 ms    [User: 1022.7 ms, System: 279.8 ms]
  Range (min … max):   517.4 ms … 644.3 ms    10 runs

Benchmark 2: bunx biome check
  Time (mean ± σ):     269.0 ms ±  10.7 ms    [User: 267.9 ms, System: 58.7 ms]
  Range (min … max):   252.0 ms … 291.8 ms    10 runs

Benchmark 3: bunx oxlint
  Time (mean ± σ):     219.1 ms ±   8.3 ms    [User: 59.4 ms, System: 35.3 ms]
  Range (min … max):   203.1 ms … 229.1 ms    14 runs

Summary
  bunx oxlint ran
    1.23 ± 0.07 times faster than bunx biome check
    2.56 ± 0.18 times faster than bunx oxlint --type-aware

The repo I'm testing it on is mostly .tsx file but some .ts files too. Not sure if it matters. I think biome checks some .json files too. It's clear when you run them one at a time:


> bunx oxlint
...
Found 3 warnings and 0 errors.
Finished in 8ms on 178 files with 89 rules using 12 threads.

and


> bunx oxlint --type-aware
...
Found 50 warnings and 0 errors.
Finished in 335ms on 178 files with 103 rules using 12 threads.

and


> bunx biome check
Checked 195 files in 29ms. No fixes applied.

There's still lots of learn about oxlint and what it can do to make my TypeScript tooling better. But in terms of speed, it's clearly fast enough.

Comments

Your email will never ever be published.

Previous:
Elasticsearch memory usage December 11, 2025 Linux, Elasticsearch
Related by category:
Testing out vite 8 on SPA: Vite 8 is 5x faster December 6, 2025 Bun, TypeScript
Hosting your static web site with Firebase Hosting November 3, 2025 Bun
Bun vs. Go for a basic web server benchmark October 24, 2025 Bun
In Python, you have to specify the type and not rely on inference October 10, 2025 TypeScript
Related by keyword:
Always run biome migrate after upgrading biome August 16, 2025 Node, JavaScript, Bun
First impressions trying out Rome to format/lint my TypeScript and JavaScript November 14, 2022 Node, JavaScript
Sneaky block-scoping variables in JavaScript that eslint can't even detect February 3, 2021 JavaScript