{
  "url": "https://unifast.dev/ru/docs/introduction/what-is-unifast/",
  "locale": "ru",
  "title": "Что такое unifast?",
  "description": "unifast — высокопроизводительный компилятор Markdown и MDX с ядром на Rust. Встроенные проходы для GFM, санитизации, подсветки и оглавления.",
  "section": "introduction",
  "body": "unifast — высокопроизводительный компилятор Markdown и MDX с ядром на Rust. Он покрывает основные сценарии использования remark/rehype, реализуя возможности непосредственно как встроенные проходы, а не через совместимость с JS-плагинами.\n\n### Зачем нужен unifast?\n\nТрадиционные инструментарии Markdown вроде unified/remark/rehype мощны, но не лишены компромиссов:\n\n- **Накладные расходы на производительность** — многократные преобразования JS AST складываются, особенно при масштабировании.\n- **Координация плагинов** — порядок, совместимость и дублирование среди десятков плагинов.\n- **Отсутствие встроенных возможностей** — даже базовые задачи вроде GFM или санитизации требуют отдельных пакетов.\n\nunifast использует иной подход:\n\n- **Ядро на Rust** — парсинг, преобразования и эмиссия происходят в нативном коде.\n- **Встроенные проходы** — типичные возможности (GFM, санитизация, подсветка, TOC) встроены, а не прикручены сверху.\n- **Одна компиляция** — один вызов компилирует Markdown в HTML со всеми применёнными функциями.\n\n### Ключевые возможности\n\n| Возможность | Описание |\n|---------|-------------|\n| **CommonMark + GFM** | Таблицы, списки задач, зачёркивание, автоссылки, сноски |\n| **Frontmatter** | Извлечение метаданных в форматах YAML, TOML и JSON |\n| **MDX** | JSX-выражения и импорты внутри Markdown |\n| **Диагностика** | Точные диапазоны ошибок с сопоставлением по строкам и колонкам |\n\n### Встроенные проходы\n\nПопулярные плагины remark/rehype переписаны как нативные проходы на Rust. Никаких npm install и головной боли с порядком.\n\n| Проход | Описание |\n|------|-------------|\n| **Санитизация** | Белый список HTML на основе схемы с безопасными значениями по умолчанию |\n| **Подсветка синтаксиса** | Подключаемые движки (syntect, Shiki) |\n| **Оглавление** | Автоматически извлекаемое дерево заголовков |\n\n### Поддержка платформ\n\nunifast работает на нескольких платформах из единого ядра на Rust:\n\n- **`@unifast/node`** — биндинг для Node.js через N-API (napi-rs). Основная цель.\n- **`@unifast/core`** — определения типов TypeScript, общие для всех пакетов.\n- **`unifast` (CLI)** — интерфейс командной строки для скриптов и CI.\n- **WASM** — поддержка браузеров и edge-рантаймов (второстепенная цель).\n\n### Чего нет в планах\n\nunifast **не является** прямой заменой unified. Он не:\n\n- Исполняет существующие JS-плагины remark/rehype внутри ядра.\n- Предоставляет API-совместимость с экосистемой unified.\n- Зависит от разрешения модулей Node в горячем пути компиляции ядра.\n\nВместо этого он ориентирован на **полноту сценариев использования** — покрытие того, что нужно большинству проектов, без сложностей сборки конвейера из плагинов.",
  "alternates": [
    {
      "locale": "en",
      "url": "https://unifast.dev/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "ja",
      "url": "https://unifast.dev/ja/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/ja/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "zh-CN",
      "url": "https://unifast.dev/zh-CN/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/zh-CN/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "zh-TW",
      "url": "https://unifast.dev/zh-TW/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/zh-TW/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "ko",
      "url": "https://unifast.dev/ko/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/ko/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "fr",
      "url": "https://unifast.dev/fr/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/fr/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "it",
      "url": "https://unifast.dev/it/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/it/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "es",
      "url": "https://unifast.dev/es/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/es/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "pt-BR",
      "url": "https://unifast.dev/pt-BR/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/pt-BR/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "de",
      "url": "https://unifast.dev/de/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/de/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "ru",
      "url": "https://unifast.dev/ru/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/ru/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "hi",
      "url": "https://unifast.dev/hi/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/hi/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "id",
      "url": "https://unifast.dev/id/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/id/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "tr",
      "url": "https://unifast.dev/tr/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/tr/docs/introduction/what-is-unifast.json"
    },
    {
      "locale": "vi",
      "url": "https://unifast.dev/vi/docs/introduction/what-is-unifast/",
      "api": "https://unifast.dev//api/vi/docs/introduction/what-is-unifast.json"
    }
  ]
}
