
carta
A universal document converter in Rust. Read one markup format, render it back out in another. Fully compatible with pandoc.
cargo install cartaFast & lightweight
Carta is multiple orders-of-magnitude faster than pandoc, while being a lot smaller.
commonmark → json1 MB22.8× fastercarta23.76 mspandoc542.03 mshtml → json1 MB46.4× fastercarta29.92 mspandoc1387.98 msjson → html1 MB16.6× fastercarta6.82 mspandoc112.94 msjson → latex1 MB13.9× fastercarta7.46 mspandoc103.67 ms
Binary size: 8.5 MB against 179.8 MB (21× smaller). Peak memory: 5–24× less.
Each row is scaled to itself, so bar length reads as the speedup; rows do not share a scale. Measured 2026-07-27 on Apple M1 Pro (10 cores), 16 GB RAM, macOS 26.5 (arm64): carta 0.0.8 against pandoc 3.10, driven by hyperfine 1.20.0 (warmup 3, 12 runs). Your numbers will differ.
32 formats supported
This is a list of all formats carta supports today. The compatibility page lists the full roadmap.
Markdown family
commonmarkCommonMark read writecommonmark_xCommonMark-X read writegfmGitHub-Flavored Markdown read writemarkdownPandoc Markdown read writemarkdown_githubGitHub Markdown, legacy read writemarkdown_mmdMultiMarkdown read writemarkdown_phpextraPHP Markdown Extra read writemarkdown_strictMarkdown strict read write
HTML & slides
beamerBeamer read writehtmlHTML read writehtml4HTML 4 read writerevealjsreveal.js read write
TeX & typesetting
latexLaTeX read writetypstTypst read write
Lightweight markup
asciidocAsciiDoc read writeorgOrg mode read writerstreStructuredText read write
Wikis
dokuwikiDokuWiki read writejiraJira read writemediawikiMediaWiki read write
roff
manman read write
Word processor, ebook & notebook
docxWord read writeepubEPUB read writeipynbJupyter Notebook read writeodtOpenDocument Text read writertfRich Text Format read write
Data, interchange & terminal
csvCSV read writejsonPandoc JSON read writenativeNative Pandoc AST read writeopmlOPML read writeplainPlain text read writetsvTSV read write
Configurable builds
Formats are selected at compile time through Cargo features. If you don't need all 32 formats, you can make carta even more lightweight.
cargo install carta --no-default-features --features cli,read-commonmark,write-html