carta

A universal document converter in Rust. Read one markup format, render it back out in another. A lightweight and performant reimplementation of pandoc.

cargo install carta

Get startedBrowse formats

Fast & lightweight

Carta is multiple orders-of-magnitude faster than pandoc, while being a lot smaller.

  1. commonmark → json1 MB21.4× faster
    carta27.31 ms
    pandoc585.37 ms
  2. html → json1 MB41.5× faster
    carta35.85 ms
    pandoc1487.11 ms
  3. json → html1 MB16.3× faster
    carta7.55 ms
    pandoc123.38 ms
  4. json → latex1 MB13.7× faster
    carta8.63 ms
    pandoc118.34 ms

Binary size: 9.3 MB against 179.8 MB (19× smaller). Peak memory: 4–22× less.

Each row is scaled to itself. carta 0.0.12 against pandoc 3.10, measured 2026-10-26 on Apple M1 Pro (10 cores), 16 GB RAM, macOS 27.0.1 (arm64).

34 formats supported

Markdown family

  • commonmark CommonMark read write
  • commonmark_x CommonMark-X read write
  • gfm GitHub-Flavored Markdown read write
  • markdown Pandoc Markdown read write
  • markdown_github GitHub Markdown, legacy read write
  • markdown_mmd MultiMarkdown read write
  • markdown_phpextra PHP Markdown Extra read write
  • markdown_strict Markdown strict read write

HTML & slides

  • beamer Beamer read write
  • html HTML read write
  • html4 HTML 4 read write
  • revealjs reveal.js read write

TeX & typesetting

  • latex LaTeX read write
  • pdf PDF read write
  • typst Typst read write

Lightweight markup

  • asciidoc AsciiDoc read write
  • org Org mode read write
  • rst reStructuredText read write

Wikis

  • dokuwiki DokuWiki read write
  • jira Jira read write
  • mediawiki MediaWiki read write

roff

  • man man read write

Word processor, ebook & notebook

  • docx Word read write
  • epub EPUB read write
  • ipynb Jupyter Notebook read write
  • odt OpenDocument Text read write
  • rtf Rich Text Format read write

XML & publishing

  • docbook DocBook read write

Data, interchange & terminal

  • csv CSV read write
  • json Pandoc JSON read write
  • native Native Pandoc AST read write
  • opml OPML read write
  • plain Plain text read write
  • tsv TSV read write

Configurable builds

Formats are selected at compile time through Cargo features. If you don't need all 34 formats, you can make carta even more lightweight.

cargo install carta --no-default-features --features cli,read-commonmark,write-html