Что такое Oxc?
/oʊ ɛks siː/
Oxidation Compiler — набор высокопроизводительных инструментов для JavaScript и TypeScript на Rust.
Oxc входит в видение VoidZero единого быстрого JS-тулчейна. Он лежит в основе Rolldown (будущего бандлера Vite) и следующего поколения сверхбыстрых инструментов разработки, которые хорошо стыкуются друг с другом.
* Окисление — химический процесс, в результате которого образуется ржавчина (rust)
Скорость по всему стеку
Oxc оптимизирует производительность всего контура: разбор, резолв модулей, линтинг, форматирование, трансформации и минификация.
Философия
Несколько основных принципов.
Производительность — это фича
Скорость — часть продукта. Быстрые инструменты ускоряют локальный цикл и снижают стоимость CI. Регрессии производительности считаем багами.
Один тулчейн, общие кирпичики
Это набор инструментов: линтер, форматтер, парсер, трансформер, минификатор и резолвер делят общие компоненты. Меньше дублирования и более согласованное поведение.
Корректность и явные границы
Цель — предсказуемость и корректность. Если поведение отличается от других инструментов, это должно быть описано. Совместимость — осознанная фича.
Практичный DX
Упор на реальные проекты: разумные умолчания, понятная конфигурация и стабильный вывод.
Что входит в состав
Готовые утилиты и переиспользуемые блоки компилятора:
- Oxlint — очень быстрый линтер для JavaScript и TypeScript с ориентацией на экосистему ESLint.
- Oxfmt — очень быстрый форматтер с целью совместимости с Prettier.
- Parser — быстрый парсер JS и TS с AST для инструментов.
- Transformer — быстрые трансформации TS, JSX и современного JavaScript.
- Minifier — быстрая минификация для production.
- Resolver — быстрый резолвер модулей для JS и TS.
Инструменты можно использовать по отдельности или как единый конвейер.
Кому подойдёт Oxc
- Разработчикам приложений и библиотек, которым нужен максимально быстрый цикл линта и форматирования локально и в CI.
- Командам платформы и тулчейна, которым нужен быстрый компиляторный фундамент в масштабе.
- Авторам инструментов, которым нужны быстрые crate или npm-пакеты для JS-тулинга.