3.1 KiB
Raw Blame History

Biome vs Oxlint: Comparison for Frontend Tooling

Context

Проект использует ESLint v8 + Prettier для линтинга и форматирования. ESLint 8 устарел (ESLint 9 имеет полностью изменённый конфиг). Рассматриваем замену на современную Rust-тулзу, совмещающую линтинг и форматирование.

Candidates

Biome (v2.5.0)

  • Linter + Formatter в одном CLI (biome check --write)
  • 500+ правил (ESLint + TypeScript ESLint + другие источники)
  • Форматтер: 97% совместимость с Prettier, ~35x быстрее
  • Поддержка: JS, TS, JSX, TSX, JSON, HTML, CSS, GraphQL
  • Единый конфиг biome.json вместо .eslintrc + .prettierrc
  • Встроенный import sorting (замена eslint-plugin-import)
  • Production usage: AWS, Google, Vercel, Microsoft, Discord, Cloudflare
  • Стабильный LTS-релиз, зрелое сообщество

Oxlint + Oxfmt (Oxc Project)

  • Oxlint: 50-100x быстрее ESLint, 800+ правил
  • Oxfmt: ~3x быстрее Biome formatter, 30x быстрее Prettier
  • Type-aware linting через tsgo
  • ESLint JS Plugin Support (alpha)
  • Два отдельных инструмента с разными конфигами
  • Oxfmt в статусе beta
  • Под капотом: самый быстрый parser (3x SWC), resolver, minifier (alpha)
  • Бэкд: VoidZero (авторы Vite, Rolldown, Rspack)

Comparison

Критерий Biome Oxlint + Oxfmt
Замена ESLint 500+ правил 800+ правил
Замена Prettier 97%, stable ⚠️ Oxfmt beta
Один CLI вместо двух два инструмента
Production-ready LTS ⚠️ formatter beta
Конфигурация 1 файл 2 файла
Скорость линтинга ~35x vs ESLint ~50-100x vs ESLint
Скорость форматирования ~35x vs Prettier ~3x vs Biome
Сообщество mature growing

Verdict: Biome

Рекомендуется Biome по трём причинам:

  1. Одна тулза вместо двух — меньше конфигов, меньше CI-степов, меньше точек отказа
  2. Production-ready — formatter стабилен, LTS-релизы, тысячи проектов в продакшене
  3. Плавная миграция — встроенная команда biome migrate eslint --write переносит правила автоматически; biome format совместим с Prettier на 97%, не требуется массовых изменений кода

Oxlint + Oxfmt перспективны (быстрее, больше правил), но Oxfmt ещё beta, и два инструмента усложняют конфигурацию. Если Oxfmt выйдет в stable — вопрос стоит пересмотреть.