markitdown-rs
Microsoft's markitdown as one Rust binary: convert PDF, Word, PowerPoint, Excel, HTML, EPUB, Outlook and web pages to Markdown for LLMs and RAG pipelines. Same output, byte for byte. No Python. 23–112× faster.
$ cargo install markitdown-rs $ markitdown order.pdf Purchase order summary | Item | Qty | Unit price | Total | | -------- | --- | ---------- | ----- | | Widget 1 | 1 | 1.50 | 1.50 | | Widget 2 | 2 | 3.00 | 6.00 | $ markitdown https://en.wikipedia.org/wiki/Markdown | head -3 # Markdown Plain text markup language
Why markitdown-rs
Drop-in
Same command, same flags, same Markdown. Every test file is checked byte for byte against Python markitdown 0.1.9.
One small binary
A 4.5 MB binary instead of a 328 MB Python environment with pdfminer, pandas, mammoth, magika and onnxruntime.
Fast
23–112× faster end to end; a 100-page PDF in 0.18 s instead of 5.9 s.
Every local format
PDF, DOCX, PPTX, XLSX, XLS, HTML, EPUB, Outlook MSG, CSV, ZIP, RSS, Jupyter, text, images and audio metadata, plus http(s) URLs, Wikipedia and YouTube pages.
Benchmarks
| File | Python markitdown | markitdown-rs | Speedup |
|---|---|---|---|
markitdown test.docx | 572.9 ms | 5.1 ms | 112× |
large.docx (1000 sections) | 11,588.9 ms | 374.2 ms | 31× |
markitdown test.pptx | 599.6 ms | 5.7 ms | 105× |
deck.pptx (300 slides) | 1,573.5 ms | 69.9 ms | 23× |
markitdown test.pdf | 649.4 ms | 7.0 ms | 93× |
report.pdf (100 pages) | 5,864.0 ms | 180.3 ms | 33× |
CLI wall time, median of repeated runs on an Apple M2 Max. Method and raw numbers: README.
Compared with
| markitdown-rs | microsoft/markitdown | markitdown (crates.io) | xberg (kreuzberg) | |
|---|---|---|---|---|
| Output identical to markitdown | yes, tested | reference | no | no (own format) |
| Install | one binary | pip + Python | cargo | pip / cargo / bindings |
| Python needed | no | yes | no | no |
| URL input | yes | yes | no | yes (feature flag) |
Full table: docs/comparison.md.