Oxfmt Beta
Мы рады объявить, что Oxfmt достиг статуса беты.
Oxfmt — форматтер на Rust, совместимый с Prettier, для экосистемы JavaScript. Цель — полная совместимость с современным стеком и резкий рост производительности.
В бенчмарках Oxfmt более чем в 30 раз быстрее Prettier и примерно в 3 раза быстрее Biome на первом запуске без кэша. Полные результаты — бенчмарк.
С декабрьской альфы мы расширили поддержку форматов файлов, добавили форматирование встроенных языков, сортировку импортов, интеграцию Tailwind CSS и множество улучшений стабильности и совместимости.
Oxfmt уже широко принят: среди проектов openclaw/openclaw, vuejs/core, vercel/turborepo, huggingface/huggingface.js, getsentry/sentry-javascript, npmx-dev/npmx.dev и многие другие.
Начало работы
Установите oxfmt как dev-зависимость:
pnpm add -D oxfmtДобавьте скрипты в package.json:
{
"scripts": {
"fmt": "oxfmt",
"fmt:check": "oxfmt --check"
}
}Форматирование:
pnpm run fmtПроверка без записи:
pnpm run fmt:checkМиграция с Prettier
Установка, миграция конфига и переформатирование одной командой:
pnpm add -D oxfmt && pnpm oxfmt --migrate prettier && pnpm oxfmtПолное руководство — Миграция с Prettier.
Промпт для ИИ
Можно скопировать этот промпт ассистенту для миграции проекта:
Migrate this project from Prettier to Oxfmt following https://oxc.rs/ru/guide/usage/formatter.html:
1. Install oxfmt and run `oxfmt --migrate prettier`
2. Update package.json scripts to use oxfmt
3. Update CI workflows to use `oxfmt --check`
4. Update lint-staged to use `oxfmt --no-error-on-unmatched-pattern`
5. Run oxfmt to reformat all files
6. Uninstall prettier and related packages
7. Update editor settings for oxfmt
8. Update CONTRIBUTING.md, AGENTS.md, or CLAUDE.md if they mention prettierПодробнее — документация Oxfmt.
Главные новинки после альфы
100% совместимость с Prettier
Oxfmt проходит 100% conformance-тестов Prettier для JavaScript и TypeScript. Оставшиеся расхождения зафиксированы для Prettier, совместно выравниваем поведение.
Можно мигрировать с уверенностью в идентичном форматировании. Найденные случаи — репорт.
Дополнительные форматы файлов
Oxfmt форматирует JavaScript, JSX, TypeScript, TSX, JSON, JSONC, JSON5, YAML, TOML, HTML, Angular, Vue, CSS, SCSS, Less, Markdown, MDX, GraphQL, Ember и Handlebars — один инструмент на весь проект.
Интеграция Tailwind CSS
Встроена автоматическая сортировка классов Tailwind для JS/TS и других файлов. Функциональность prettier-plugin-tailwindcss встроена, плагин не нужен.
Сортировка импортов
Встроенная сортировка импортов с настройками:
ignoreCase— без учёта регистраsortSideEffects— side-effect импортыnewlinesBetween— пустые строки между группамиgroups— порядок группcustomGroups— свои группы
Полный справочник — config file reference.
Сортировка package.json
По умолчанию включена сортировка полей package.json для единообразия.
Форматирование встроенных языков
Форматирование кода во встроенных шаблонных литералах:
- CSS-in-JS в духе styled-components,
styled-jsxи CSS prop - шаблоны и стили в
@ComponentAngular
Node.js API
Доступен программный API:
import { format, type FormatOptions } from "oxfmt";
const input = `let a=42;`;
const options: FormatOptions = {
semi: false,
};
const { code } = await format("a.js", input, options);
console.log(code); // "let a = 42"Изменения CLI
--init— создать конфиг--migrate prettier— миграция с Prettier--migrate biome— миграция с Biome--stdin-filepath— путь для ввода из stdin- раскрытие glob —
oxfmt './packages/**/*.{js,jsx}'
Изменения конфигурации
overrides— разные опции для паттернов файловinsertFinalNewline— завершающие переводы строк- поддержка
.editorconfigдляinsert_final_newline
Поддержка редакторов
Oxfmt работает в VS Code, Cursor, Zed, IntelliJ IDEA, WebStorm, Neovim и любом редакторе с LSP.
Дорожная карта
Двигаемся к стабильному релизу:
- поддержка плагинов Prettier
- улучшение форматирования xxx-in-js
- стабильность
- оптимизации производительности
Дальнейшие шаги
Полное руководство — документация Oxfmt.
Сообщения об ошибках
По расхождениям форматирования см. обсуждение.
Сообщество
Ждём вашего фидбека по Oxfmt:
- Discord: сервер сообщества
- GitHub: Formatter RFC
- Issues: трекер


