Oxlint v1.0 Stable
INFO
Эта заметка в блоге изначально опубликована на сайте VoidZero.
Кратко: вышла первая стабильная версия 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 подходит тем, кто хочет линтить код без часов настройки инструментов. Без конфигурации можно сразу находить проблемы:
Запустите — конфиг не обязателен.
$ npx oxlint@latest$ pnpm dlx oxlint@latest$ yarn dlx oxlint@latest$ bunx oxlint@latest$ 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 для типов файлов или путей
- Расширение общих конфигов для команд
Интеграция с редакторами
Поддержка редакторов:
- VS Code
- IntelliJ IDEA и WebStorm
- Zed Editor
- LSP для других редакторов
Понятные диагностики
Oxlint выдаёт ясные сообщения — не только описание проблемы, но и визуализацию и подсказки по исправлению.
Oxlint в терминале с подробным отчётом об ошибках
Benchmark
По нашему бенчмарку Oxlint примерно в 50–100 раз быстрее ESLint при той же настройке.
| Инструмент | Время |
|---|---|
| oxlint (multi thread) | 615.3 ms |
| oxlint (single thread) | 1.840 s |
| eslint | 33.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. Присоединяйтесь:
- Discord: сервер сообщества
- GitHub: обсуждения на GitHub Discussions
- Issues: баги и идеи в трекере
Ваш фидбек двигает развитие Oxlint.
Попробуйте
Начните с руководства по установке или узнайте больше о проекте Oxc.

