Oxc ваш JavaScript-тулинг на стероидах из Rust
Знакомая ситуация? Вы сохраняете файл, а линтер, форматер и сборщик запускают свои неторопливые процессы, заставляя вас ждать. Секунда, другая, третья... Вроде бы мелочь, но за день набегает прилично. А если проект большой, ожидание становится частью рабочего процесса. Что, если я скажу, что есть способ ускорить всё это в десятки раз? Сегодня мы посмотрим на Oxc — проект, который переписывает привычные JavaScript-инструменты на Rust, и делает это чертовски быстро.
Что такое Oxc и зачем он нужен?
Oxc, или The Oxidation Compiler, — это не просто один инструмент, а целая коллекция утилит для JavaScript и TypeScript, написанных на Rust. Название — остроумная игра слов: "oxidation" (окисление) — это химический процесс, который создает ржавчину (rust). Так и Oxc "окисляет" экосистему JS, заменяя медленные компоненты на сверхбыстрые аналоги.
Главная цель проекта — создать единый, высокопроизводительный набор инструментов, который избавит разработчиков от "зоопарка" разношёрстных и не всегда быстрых утилит. Интересно, что Oxc уже стал сердцем для Rolldown, будущего сборщика для Vite. Это не просто очередной пет-проект, а фундаментальная технология для следующего поколения веб-разработки.
Из чего состоит этот "швейцарский нож"?
Oxc предлагает модульный подход. Вы можете использовать как отдельные компоненты, так и всё вместе. Давайте посмотрим, что внутри.
1. Линтер (oxlint) — ловит ошибки на лету
Это, пожалуй, самый готовый к использованию инструмент из всей коллекции. Он ищет потенциальные ошибки в коде, причём делает это с невероятной скоростью. Разработчики приводят пример: проверка более 4800 файлов в репозитории VS Code занимает всего 0.7 секунды!
Вам не нужно часами копаться в конфигах. oxlint поставляется с разумными настройками по умолчанию, которые уже "из коробки" отлавливают большинство проблем.
Хотите попробовать? Просто запустите в корне вашего проекта:
npx oxlint@latest
Скорее всего, вы будете удивлены скоростью.
2. Форматер (oxfmt) — красота без компромиссов
Быстрый и самоуверенный (opinionated) форматер кода, совместимый с Prettier. Если ваша команда уже использует Prettier, переход будет практически бесшовным, но при этом вы получите значительный прирост производительности.
Запустить его так же просто:
npx oxfmt@latest
3. Парсер, трансформер и минификатор — строительные блоки будущего
Эти компоненты — основа для создателей других инструментов.
- Парсер (
oxc-parser): Самый быстрый парсер для JavaScript/TypeScript на Rust. Он читает ваш код и превращает его в абстрактное синтаксическое дерево (AST) — структуру, понятную для других программ. Именно его используют Nuxt и Rolldown. - Трансформер (
oxc-transform): Умеет преобразовывать код. Например, вырезать типы из TypeScript или транспилировать синтаксис React (JSX). - Минификатор (
oxc-minify): Сжимает код, удаляя всё лишнее, чтобы он быстрее загружался в браузере.
Именно комбинация этих низкоуровневых утилит позволяет создавать такие инструменты, как сборщики или компиляторы, которые работают на порядок быстрее своих аналогов, написанных на JavaScript.
Почему это так быстро? Секрет в Rust
Ключ к производительности Oxc — это язык Rust. В отличие от JavaScript, Rust — это компилируемый язык с нулевыми затратами на абстракции и строгим контролем над памятью. Это позволяет писать код, который по скорости приближается к C++, но с гораздо более высокими гарантиями безопасности.
Для экосистемы JavaScript, где производительность инструментов часто упирается в возможности однопоточного Node.js, переход на Rust — это как пересесть с седана на гоночный болид.
Кто уже использует Oxc?
Список компаний и проектов, которые уже внедрили Oxc, впечатляет. Помимо упомянутых Rolldown и Nuxt, в него входят Preact, Shopify, ByteDance (создатели TikTok) и Shopee. Это лучшее доказательство того, что проект готов к серьезным нагрузкам и решает реальные проблемы крупного бизнеса.
Использование Oxc в таких проектах — это не просто погоня за хайпом. Это прагматичное решение, которое позволяет экономить тысячи часов машинного и человеческого времени на сборке, тестировании и деплое.
Стоит ли пробовать?
Однозначно да.
- Если вы веб-разработчик, уставший от медленных инструментов, — попробуйте
oxlint. Это займет одну минуту, но может сэкономить вам часы в будущем. - Если вы создаете свои инструменты для JavaScript (например, кастомный сборщик, фреймворк или плагин для IDE), — присмотритесь к парсеру и трансформеру Oxc. Это мощный фундамент, который даст вашему проекту огромное преимущество в скорости.
- Если вы интересуетесь современными технологиями, — Oxc является ярким примером тренда на "рустификацию" веб-инструментария, наряду с такими проектами как Biome и Ruff (из мира Python).
Oxc — это не просто набор утилит. Это взгляд в будущее, где инструментарий разработчика не тормозит, а помогает творить. Проект активно развивается, и, судя по всему, мы еще не раз о нем услышим. Так почему бы не познакомиться с ним уже сегодня?
