{
  "url": "https://unifast.dev/pt-BR/docs/introduction/what-is-unifast/",
  "locale": "pt-BR",
  "title": "O que é o unifast?",
  "description": "O unifast é um compilador de Markdown e MDX de alta performance com core em Rust. Passes integrados para GFM, sanitização, highlighting e TOC.",
  "section": "introduction",
  "body": "O unifast é um compilador de Markdown e MDX de alta performance com core em Rust. Ele cobre os principais casos de uso do remark/rehype implementando funcionalidades diretamente como passes integrados - e não por meio de compatibilidade com plugins JS.\n\n### Por que o unifast?\n\nToolchains tradicionais de Markdown como unified/remark/rehype são poderosas, mas vêm com trade-offs:\n\n- **Sobrecarga de performance** - Múltiplas transformações de AST em JS se acumulam, especialmente em larga escala.\n- **Coordenação de plugins** - Ordenação, compatibilidade e duplicação entre dezenas de plugins.\n- **Sem funcionalidades integradas** - Até tarefas básicas como GFM ou sanitização exigem pacotes separados.\n\nO unifast adota uma abordagem diferente:\n\n- **Core em Rust** - Parsing, transformação e emissão acontecem todos em código nativo.\n- **Passes integrados** - Funcionalidades comuns (GFM, sanitização, highlighting, TOC) são integradas, não adicionadas por cima.\n- **Compilação única** - Uma chamada compila Markdown para HTML com todas as funcionalidades aplicadas.\n\n### Principais Funcionalidades\n\n| Funcionalidade | Descrição |\n|---------|-------------|\n| **CommonMark + GFM** | Tabelas, task lists, strikethrough, autolinks, footnotes |\n| **Frontmatter** | Extração de metadados em YAML, TOML e JSON |\n| **MDX** | Expressões JSX e imports em Markdown |\n| **Diagnósticos** | Spans de erro precisos com mapeamento de linha/coluna |\n\n### Passes Integrados\n\nPlugins comuns do remark/rehype são reimplementados como passes nativos em Rust. Sem npm install, sem dores de cabeça com ordenação.\n\n| Pass | Descrição |\n|------|-------------|\n| **Sanitização** | Allowlist de HTML baseada em schema com padrões seguros |\n| **Syntax Highlighting** | Engines plugáveis (syntect, Shiki) |\n| **Table of Contents** | Árvore de headings extraída automaticamente |\n\n### Suporte a Plataformas\n\nO unifast roda em múltiplas plataformas a partir de um único core em Rust:\n\n- **`@unifast/node`** - Binding para Node.js via N-API (napi-rs). Target principal.\n- **`@unifast/core`** - Definições de tipos TypeScript compartilhadas entre todos os pacotes.\n- **`unifast` (CLI)** - Interface de linha de comando para scripts e CI.\n- **WASM** - Suporte a runtimes de browser e edge (target secundário).\n\n### Não-objetivos\n\nO unifast **não** é um substituto drop-in para o unified. Ele não:\n\n- Executa plugins JS existentes do remark/rehype dentro do core.\n- Fornece compatibilidade de API com o ecossistema unified.\n- Depende da resolução de módulos do Node no caminho de compilação do core.\n\nEm vez disso, ele foca em **completude de casos de uso** - cobrindo o que a maioria dos projetos precisa sem a complexidade de montar uma pipeline de plugins.",
  "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"
    }
  ]
}
