O que é o unifast?

O unifast é um compilador de Markdown e MDX de alta performance com core em Rust. Passes integrados para GFM, sanitização, highlighting e TOC.

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.

Por que o unifast?

Toolchains tradicionais de Markdown como unified/remark/rehype são poderosas, mas vêm com trade-offs:

  • Sobrecarga de performance - Múltiplas transformações de AST em JS se acumulam, especialmente em larga escala.

  • Coordenação de plugins - Ordenação, compatibilidade e duplicação entre dezenas de plugins.

  • Sem funcionalidades integradas - Até tarefas básicas como GFM ou sanitização exigem pacotes separados.

O unifast adota uma abordagem diferente:

  • Core em Rust - Parsing, transformação e emissão acontecem todos em código nativo.

  • Passes integrados - Funcionalidades comuns (GFM, sanitização, highlighting, TOC) são integradas, não adicionadas por cima.

  • Compilação única - Uma chamada compila Markdown para HTML com todas as funcionalidades aplicadas.

Principais Funcionalidades

FuncionalidadeDescrição
CommonMark + GFMTabelas, task lists, strikethrough, autolinks, footnotes
FrontmatterExtração de metadados em YAML, TOML e JSON
MDXExpressões JSX e imports em Markdown
DiagnósticosSpans de erro precisos com mapeamento de linha/coluna

Passes Integrados

Plugins comuns do remark/rehype são reimplementados como passes nativos em Rust. Sem npm install, sem dores de cabeça com ordenação.

PassDescrição
SanitizaçãoAllowlist de HTML baseada em schema com padrões seguros
Syntax HighlightingEngines plugáveis (syntect, Shiki)
Table of ContentsÁrvore de headings extraída automaticamente

Suporte a Plataformas

O unifast roda em múltiplas plataformas a partir de um único core em Rust:

  • @unifast/node - Binding para Node.js via N-API (napi-rs). Target principal.

  • @unifast/core - Definições de tipos TypeScript compartilhadas entre todos os pacotes.

  • unifast (CLI) - Interface de linha de comando para scripts e CI.

  • WASM - Suporte a runtimes de browser e edge (target secundário).

Não-objetivos

O unifast não é um substituto drop-in para o unified. Ele não:

  • Executa plugins JS existentes do remark/rehype dentro do core.

  • Fornece compatibilidade de API com o ecossistema unified.

  • Depende da resolução de módulos do Node no caminho de compilação do core.

Em 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.