Start / Open Source / anydoc

anydoc

Eine schnelle Rust-Bibliothek, die Word-, PowerPoint-, Excel-, OpenDocument-, RTF-, EPUB-, CSV- und PDF-Dateien in sauberes, konsistentes Markdown konvertiert.

RustMITCrawler
⭐ GitHubhttps://github.com/firecrawl/anydoc
15,193
Stars
+0
Star-Wachstum
11. Aug. 2026
Zuletzt aktualisiert
7
Klicks

1. Projektübersicht

anydoc ist eine schnelle, auf Rust basierende Bibliothek, die Word-, PowerPoint-, Excel-, OpenDocument-, RTF-, EPUB-, CSV- und PDF-Dateien in sauberes, konsistentes GitHub-Flavored-Markdown konvertiert und Entwicklern sowie KI-Agenten einen einzigen zuverlässigen Pfad von jedem Office-Dokument zu LLM-fähigem Text bietet.

2. Hintergrund & Positionierung

Entwickelt von Firecrawl, existiert anydoc, um ein Problem zu lösen, das in Dokumentverarbeitungs- und KI-Pipelines ständig auftritt: Office-Dateien kommen in einem Dutzend Legacy- und moderner Formate an, und jeder vorhandene Konverter verarbeitet nur eine Teilmenge davon, oft mit stark unterschiedlicher Ausgabequalität und Geschwindigkeit. Die Kernmission von anydoc ist es, jedem dieser Formate – von einer 2003 gespeicherten .doc-Datei bis zu einer gestern exportierten .pptx-Datei – ein gemeinsames Dokumentmodell und einen gemeinsamen Markdown-Serialisierer zu geben, sodass eine Korrektur bei Tabellen-Escaping oder Überschriften-Ankern allen Formaten gleichzeitig zugutekommt, anstatt Format für Format neu implementiert zu werden.

Es unterscheidet sich von Allzweck-Konvertern wie Pandoc, LibreOffices Headless-Konvertierung oder Python-Tools wie markitdown, unstructured und docling in dreierlei Hinsicht: Es ist reines Rust ohne ML-Modelle oder externe Dienste, es erkennt Formate anhand des Dateiinhalts statt der Erweiterung zu vertrauen, und – laut anydocs eigenem veröffentlichten Benchmark gegen sechs konkurrierende Tools – war es das einzige, das alle vierzehn getesteten Formate abdeckte, dabei auch die höchste Qualitätsbewertung erzielte und ungefähr eine Größenordnung schneller konvertierte als das nächstschnellste Tool. anydoc betreibt auch die gehostete Firecrawl Parse-API, die OCR für gescannte Seiten hinzufügt, was die Open-Source-Bibliothek bewusst nicht versucht.

3. Funktionskategorien

📄 Formatabdeckung – 8 Dokumentfamilien, 20+ Erweiterungen
Konvertiert .doc/.docx/.docm (Word), .ppt/.pptx/.pptm/.pps/.ppsx/.ppsm/.pot (PowerPoint), .xls/.xlsx/.xlsm/.xlsb (Excel), .odt/.ods/.odp (OpenDocument) sowie .rtf, .epub, .csv und .pdf. Zweck: eine Bibliothek, die ein Regal voller Einzelformat-Konverter ersetzt.

🧱 Dokumentstruktur-Treue – Strukturelemente mit voller Wiedergabetreue
Überschriften mit Ankern, fett/kursiv/durchgestrichen, Inline-Code und Codeblöcke, Links und Querverweise, verschachtelte/nummerierte/Aufgabenlisten, Tabellen mit verbundenen Zellen, Blockzitate, Fußnoten/Endnoten und Sprechernotizen. Zweck: genug Struktur erhalten, sodass die Markdown-Ausgabe für nachgelagertes Parsing weiterhin nutzbar ist, nicht nur ein Text-Dump.

🖼️ Eingebettete Assets – Bilder und eingebettete Objekte
Stellt Bilder über Alt-Text im Markdown dar, während die Rohbytes und Medientypen im zugrunde liegenden Dokumentmodell verfügbar bleiben; externe Bild-URLs werden zu normalen Markdown-Bildlinks. Zweck: Aufrufern die Wahl lassen, ob sie binäre Assets behalten, neu hosten oder verwerfen möchten.

🔌 Sprachbindungen – 4 Laufzeitziele
Native Rust-Crate, Node.js-Paket (nicht blockierend über den libuv-Threadpool), Python-Paket (gibt die GIL frei) und ein WebAssembly-Build für den Browser. Zweck: dieselbe Konvertierungslogik in einem Backend-Dienst, einer CLI, einem Notebook oder vollständig clientseitig ausführen.

🤖 Agentenintegration – 1 erstklassige Agent-Fähigkeit
Wird als installierbare Agent-Fähigkeit (npx skills add firecrawl/anydoc) ausgeliefert, kompatibel mit Claude Code, Codex, Cursor, OpenCode und anderen fähigkeitsbewussten Agenten. Zweck: Codierungsagenten ermöglichen, Office-Dokumente, auf die sie stoßen, ohne benutzerdefinierten Klebecode zu lesen.

4. Hauptmerkmale

  • Ein Dokumentmodell, ein Serialisierer. Jedes Format wird in dieselbe interne Document-Darstellung geparst und über einen einzigen GFM-Serialisierer gerendert, sodass Formatierungsfehler einmal für alle Formate behoben werden, statt einmal pro Parser.
  • Inhaltsbasierte Formaterkennung. anydoc liest den PDF-Header, die RTF-Öffnungsgruppe, OLE-Stream-Namen oder den ZIP-Paket-Mimetyp direkt aus den Bytes, sodass falsch beschriftete oder erweiterungslose Dateien trotzdem korrekt konvertiert werden (Format::from_bytes).
  • Median-Konvertierung unter 5 ms. Reines Rust ohne ML-Modelle oder Netzwerkaufrufe; der veröffentlichte Benchmark berichtet eine mediane Konvertierungszeit von 4,4 ms, weit schneller als LibreOffice, Pandoc oder Python-basierte Alternativen.
  • Unabhängig bewerteter Qualitätsführer. Gegenüber sechs anderen Konvertern über 100 reale Dokumente in 14 Formaten war anydoc das einzige Tool mit vollständiger Formatabdeckung und der höchsten Qualitätsbewertung bei jedem bewerteten Format (LLM-bewertet gegen seitenbasierten Ground Truth).
  • Integrierte PDF-Unterstützung. Textbasierte PDFs werden lokal über die begleitende pdf-inspector-Crate konvertiert – für diesen Pfad ist kein externer OCR-Dienst erforderlich.
  • Typisierte, variantenspezifische Fehlerbehandlung. Ein ConvertError-Enum (Unsupported, Malformed, Encrypted, ResourceLimit, MissingPart, Io) ermöglicht aufrufendem Code, „Datei überspringen“-Fälle von echten Fehlern zu unterscheiden, gespiegelt als error.code in Node/Wasm und als typisierte Ausnahmen in Python.

5. Anwendungsfälle nach Rolle

  • Allgemeine Entwickler – anydoc in eine Dokumenterfassungs-Pipeline (Rust, Node.js, Python oder Browser/WASM) einfügen, um gemischte Uploads in Markdown zu normalisieren, ohne separate Parser pro Format zu pflegen.
  • Daten-/Forschungswissenschaftler (und KI/ML-Ingenieure) – anydoc verwenden, um heterogene Korpora (Berichte, Präsentationen, Tabellenkalkulationen, CSVs, PDFs) in sauberes, strukturell konsistentes Markdown zu verwandeln, das für Einbettungen, RAG-Indizierung oder LLM-Kontextfenster geeignet ist.
  • Projektmanager / Tooling-Teams – Die Agent-Fähigkeit übernehmen, damit Codierungsagenten (Claude Code, Cursor, Codex, OpenCode) während einer Sitzung Design-Dokumente, Spezifikationen oder Besprechungsnotizen lesen können, die ihnen in nativen Office-Formaten übergeben werden.

6. Erste Schritte

Finden Sie, was Sie brauchen
Überprüfen Sie die Tabelle der unterstützten Formate und die API-Referenzen pro Bindung (node/README.md, python/README.md, wasm/README.md), um zu bestätigen, dass Ihr Format und Ihre Laufzeit abgedeckt sind.

Installieren / integrieren

# CLI (keine Installation, führt die vorgefertigte Binärdatei aus)
npx @firecrawl/anydoc report.docx

# Node.js
npm install @firecrawl/anydoc

# Python
pip install firecrawl-anydoc

# Rust
cargo add anydoc

# Browser / WebAssembly
npm install @firecrawl/anydoc-wasm

Mitwirken

git clone https://github.com/firecrawl/anydoc.git
cd anydoc
cargo test

Öffnen Sie Issues oder Pull Requests direkt im GitHub-Repository; das Projekt pflegt außerdem fixture-basierte Snapshot-Tests, Mutationstests und cargo-fuzz-Ziele unter tests/ und fuzz/ für Mitwirkende, die Formatunterstützung hinzufügen.

7. Projektstruktur

anydoc/
├── src/            # Kern-Rust-Bibliothek: Formatparser + Dokumentmodell + GFM-Serialisierer
├── node/            # Node.js-Bindungen (npm-Paket, TypeScript-Typen)
├── python/           # Python-Bindungen (PyPI-Wheel via maturin)
├── wasm/            # WebAssembly-/Browser-Bindungen
├── skills/          # Agent-Fähigkeitsdefinition (convert-documents-to-markdown)
├── bench/            # Benchmark-Harness für Geschwindigkeit und Qualität
├── tests/            # Fixture-Korpus, Snapshot- und Robustheitstests
├── fuzz/             # cargo-fuzz-Ziele pro Format
├── examples/          # Verwendungsbeispiele
└── Cargo.toml         # Crate-Manifest (Quelle der Wahrheit für die veröffentlichte Version)

src/ enthält einen Parser pro Format, die alle in ein gemeinsames Document-Modell münden, bevor gerendert wird – das ist der architektonische Kern, um den der Rest des Repos (Bindungen, Bench, Tests) aufgebaut ist.

8. Verwandtes Ökosystem

  • Firecrawl – die übergeordnete Plattform; anydocs Konvertierungslogik betreibt die gehostete Firecrawl Parse-API, die OCR für gescannte/bildbasierte Seiten hinzufügt.
  • pdf-inspector – die begleitende Rust-Crate, die anydoc für lokale, nicht-OCR-PDF-Text extraktion verwendet.
  • Agent Skills – das Ökosystem/die Spezifikation, in dem/der anydocs Agent-Fähigkeit veröffentlicht wird, wodurch sie für Claude Code, Codex, Cursor und OpenCode auffindbar ist.
  • Crates.io / npm / PyPI – anydoc veröffentlicht offizielle Pakete als anydoc (Crate), @firecrawl/anydoc und @firecrawl/anydoc-wasm (npm) sowie firecrawl-anydoc (PyPI).

9. Lizenz

✅ Frei nutzbar, modifizierbar und verteilbar, auch in kommerziellen und Closed-Source-Produkten (MIT-Lizenz).
✅ Frei einbettbar in proprietäre Pipelines und SaaS-Produkte, ohne den eigenen Quellcode veröffentlichen zu müssen.
❌ Es wird keine Garantie gewährt; die Autoren haften nicht für Schäden, die aus der Nutzung entstehen.
ℹ️ Der MIT-Lizenztext und der Copyright-Hinweis müssen in Kopien oder wesentlichen Teilen der Software erhalten bleiben.

10. FAQ

F: Welche Dokumentformate unterstützt anydoc?
A: Word (.doc/.docx/.docm), PowerPoint (.ppt/.pptx/.pptm/.pps/.ppsx/.ppsm/.pot), Excel (.xls/.xlsx/.xlsm/.xlsb), OpenDocument (.odt/.ods/.odp), RTF, EPUB, CSV und PDF.

F: Führt anydoc OCR für gescannte PDFs oder Bilder durch?
A: Nein – anydoc konvertiert textbasierte PDFs lokal über pdf-inspector, enthält aber keine OCR. Für gescannte Dokumente fügt die gehostete Firecrawl Parse-API OCR-Modelle auf derselben Konvertierungsengine hinzu.

F: Kann ich anydoc ohne Installation verwenden?
A: Ja, führen Sie npx @firecrawl/anydoc report.docx aus, um eine Datei sofort mit einer vorgefertigten Binärdatei zu konvertieren, oder probieren Sie die Browser-Demo, die vollständig clientseitig über WebAssembly läuft.

F: Wie erkennt anydoc das Dateiformat?
A: Anhand des Dateiinhalts, nicht der Erweiterung – durch Lesen des PDF-Headers, des RTF-Öffnungsgruppen-Markers, der OLE-Stream-Namen oder des ZIP-Paket-Mimetyps/Inhaltstypen. CSV hat keinen solchen Marker, daher verlässt es sich auf die Erweiterung oder ein explizites Formatargument.

F: Wie ist anydoc für kommerzielle Nutzung lizenziert?
A: Es ist MIT-lizenziert und kann daher frei in kommerzieller und proprietärer Software verwendet werden; siehe Abschnitt 9 für Details.

11. Schnelllinks

12. Zusammenfassung

anydoc bietet Teams einen einzigen, schnellen, abhängigkeitsarmen Weg, um Word-, PowerPoint-, Excel-, OpenDocument-, RTF-, EPUB-, CSV- und PDF-Dateien in sauberes, strukturell originalgetreues Markdown zu verwandeln – eine Aufgabe, die zuvor das Zusammensetzen mehrerer formatspezifischer Tools von ungleicher Qualität erforderte. Es eignet sich am besten für Entwickler, die Dokumenterfassungs-Pipelines bauen, Daten-/KI-Teams, die Korpora für Einbettungen oder LLM-Kontext vorbereiten, und Codierungsagenten, die Office-Dokumente spontan lesen müssen – alle profitieren von der Kombination aus breiter Formatabdeckung, bewerteter Ausgabequalität und millisekundenschneller Konvertierungsgeschwindigkeit.