Skip to content

Oxlint v1.0 Stable



Кратко: вышла первая стабильная версия Oxlint! При ускорении примерно в 50–100 раз относительно ESLint, поддержке более 500 правил ESLint и использовании в крупных компаниях вроде Shopify, Airbnb и Mercedes-Benz стоит попробовать. Начать сейчас.


Oxlint — линтер на Rust для JavaScript и TypeScript, рассчитанный на скорость и простое внедрение. С первого анонса в декабре 2023 года Oxlint сильно вырос и выпускает первую стабильную версию 1.0. Помимо стабильного релиза мы объявляем, что у Oxlint есть выделенный штатный мейнтейнер Cameron и растущая основная команда по поддержке и развитию линтера.

Реальный эффект

Мы гордимся производительностью Oxlint и его влиянием на большие кодовые базы — в том числе снижением затрат CI.

Благодарим более 5 200 ранних последователей и компании и проекты вроде:

  • Shopify, где команда фронтенд-платформы использует Oxlint в админке Shopify.
  • Airbnb, где применяют многопроектный анализ oxc/no-barrel-file и import/no-cycle на 126 000+ файлах — на CI это занимает около 7 с. Реализация ESLint для этих правил не укладывается в таймаут.
  • Mercedes-Benz, где при переходе с ESLint на Oxlint время линта сократилось на 71%, на отдельных проектах ускорение до 97%.
  • Крупные опенсорс-проекты — от рантаймов вроде Bun до фреймворков вроде Preact.

На самом большом найденном нами репозитории Oxlint выдал:

Finished in 22.5s on 264925 files with 101 rules using 10 threads.

По кейсам из X и Bluesky, Oxlint обрабатывает порядка 10 000 файлов в секунду в зависимости от числа потоков.

Быстрый старт

Oxlint подходит тем, кто хочет линтить код без часов настройки инструментов. Без конфигурации можно сразу находить проблемы:

Запустите — конфиг не обязателен.

sh
$ npx oxlint@latest
sh
$ pnpm dlx oxlint@latest
sh
$ yarn dlx oxlint@latest
sh
$ bunx oxlint@latest
sh
$ deno run npm:oxlint@latest

Без настройки можно начать сразу; для крупных или особых проектов полезен файл .oxlintrc.json. Формат основан на flat config ESLint v8, миграция привычна. Каждый файл линтится ближайшей подходящей конфигурацией; можно использовать overrides для glob-паттернов и расширять общие конфиги для единообразия команд.

Для проектов на ESLInt доступен oxlint-migrate для переноса flat config в Oxlint. Дополнительно eslint-plugin-oxlint отключает пересекающиеся правила ESLint при совместном запуске. Рекомендуется oxlint && eslint, чтобы совместить скорость Oxlint и покрытие ESLint.

Подробнее см. руководство по установке.

Версионирование

В отличие от библиотек с рантайм-кодом, линтер меняет только выдаваемые диагностики. Oxlint следует семантическому версионированию:

  • Patch: только исправления ошибок.
  • Minor: расширение правил и диагностик без обязательных изменений конфигурации.
  • Major: изменения CLI или конфигурации, возможна миграция. Учтите: minor-релизы могут ломать CI, если новые правила находят ранее скрытые проблемы. Подробнее — руководство по версионированию.

Основные моменты

Широкое покрытие правилами

В Oxlint более 500 правил из разных источников:

  • Полный набор ESLint, включая правила TypeScript из typescript-eslint (кроме требующих проверки типов).
  • Популярные плагины: eslint-plugin-unicorn, eslint-plugin-jsdoc, eslint-plugin-react, eslint-plugin-react-hooks, eslint-plugin-jest, eslint-plugin-import
  • Собственные правила Oxlint, например bad comparison sequence, const comparisons и only used in recursion

Гибкая конфигурация

Настройка через .oxlintrc.json:

  • Вложенные конфиги по каталогам
  • Override для типов файлов или путей
  • Расширение общих конфигов для команд

Интеграция с редакторами

Поддержка редакторов:

Понятные диагностики

Oxlint выдаёт ясные сообщения — не только описание проблемы, но и визуализацию и подсказки по исправлению.

CLI DemoOxlint в терминале с подробным отчётом об ошибках

Benchmark

По нашему бенчмарку Oxlint примерно в 50–100 раз быстрее ESLint при той же настройке.

ИнструментВремя
oxlint (multi thread)615.3 ms
oxlint (single thread)1.840 s
eslint33.481 s

Дорожная карта

Oxlint 1.0 — это начало! Стабильность есть, но впереди важные функции:

Пользовательские правила — скоро поддержка JS-плагинов, чтобы команды писали свои правила в архитектуре Oxlint.

Оптимизации производительности — дальнейшее ускорение парсинга и анализа.

Точная (per-glob) конфигурация — конфигурация в духе ESLint v9.

Благодарности

Oxlint 1.0 — результат более чем 200 контрибьюторов. Спасибо за issue, запросы функций и патчи.

Отдельно:

  • @branchseer за runtime многопроектного анализа.
  • @camc314, @mysteryven и @shulaoda за сложные правила, тесты и постоянные улучшения.
  • @camchenry за вложенную конфигурацию.
  • @DonIsaac за конфигурацию, документацию и сайт, а также представление Oxc на SquiggleConf 2024.
  • @leaysgur за парсер RegExp и плагин JSDoc.
  • @Sysix за eslint-plugin-oxlint и вклад в language server и расширение VSCode.
  • @u9g и @rzvxa за анализ графа потока управления.

Сообщество

Нам важна ваша обратная связь по Oxlint. Присоединяйтесь:

Ваш фидбек двигает развитие Oxlint.

Попробуйте

Начните с руководства по установке или узнайте больше о проекте Oxc.