Was ist unifast?

unifast ist ein hochperformanter Markdown- und MDX-Compiler mit einem Rust-Kern. Integrierte Passes für GFM, Sanitization, Hervorhebung und Inhaltsverzeichnis.

unifast ist ein hochperformanter Markdown- und MDX-Compiler mit einem Rust-Kern. Er deckt die gängigen Anwendungsfälle von remark/rehype ab, indem er Funktionen direkt als integrierte Passes implementiert – nicht über die Kompatibilität mit JS-Plugins.

Warum unifast?

Klassische Markdown-Toolchains wie unified/remark/rehype sind mächtig, bringen jedoch Nachteile mit sich:

  • Performance-Overhead – Mehrfache JS-AST-Transformationen summieren sich, besonders bei großem Umfang.

  • Plugin-Koordination – Reihenfolge, Kompatibilität und Duplikate über Dutzende von Plugins hinweg.

  • Keine integrierten Funktionen – Selbst grundlegende Aufgaben wie GFM oder Sanitization erfordern separate Pakete.

unifast verfolgt einen anderen Ansatz:

  • Rust-Kern – Parsing, Transformation und Ausgabe finden vollständig in nativem Code statt.

  • Integrierte Passes – Gängige Funktionen (GFM, Sanitization, Hervorhebung, Inhaltsverzeichnis) sind eingebaut, nicht nachträglich aufgesetzt.

  • Einzelne Kompilierung – Ein einziger Aufruf kompiliert Markdown zu HTML mit allen angewendeten Funktionen.

Wichtige Funktionen

FunktionBeschreibung
CommonMark + GFMTabellen, Aufgabenlisten, Durchstreichung, Autolinks, Fußnoten
FrontmatterExtraktion von Metadaten in YAML, TOML und JSON
MDXJSX-Ausdrücke und Imports in Markdown
DiagnostikPräzise Fehlerbereiche mit Zeilen-/Spaltenzuordnung

Integrierte Passes

Gängige remark/rehype-Plugins sind als native Rust-Passes neu implementiert. Kein npm install, keine Sorgen um die Reihenfolge.

PassBeschreibung
SanitizationSchema-basierte HTML-Allowlist mit sicheren Voreinstellungen
Syntax-HervorhebungAustauschbare Engines (syntect, Shiki)
InhaltsverzeichnisAutomatisch extrahierter Überschriftenbaum

Plattform-Unterstützung

unifast läuft aus einem einzigen Rust-Kern auf mehreren Plattformen:

  • @unifast/node – Node.js-Bindung über N-API (napi-rs). Primäres Ziel.

  • @unifast/core – TypeScript-Typdefinitionen, die von allen Paketen gemeinsam genutzt werden.

  • unifast (CLI) – Kommandozeilenschnittstelle für Skripte und CI.

  • WASM – Unterstützung für Browser- und Edge-Laufzeiten (sekundäres Ziel).

Nicht-Ziele

unifast ist kein Drop-in-Ersatz für unified. Es bietet nicht:

  • Ausführung bestehender remark/rehype-JS-Plugins innerhalb des Kerns.

  • API-Kompatibilität mit dem unified-Ökosystem.

  • Abhängigkeit von Nodes Modulauflösung im Kern-Kompilierungspfad.

Stattdessen zielt es auf Vollständigkeit der Anwendungsfälle ab – und deckt das ab, was die meisten Projekte benötigen, ohne die Komplexität des Zusammenstellens einer Plugin-Pipeline.