carta
A universal document converter written in Rust. Read a markup format, render it back out in another. A performant and lightweight reimplementation of pandoc.
[!WARNING] carta is an early-stage alpha under active development. Not all of pandoc's formats are implemented yet and the API is still unstable.
Goals
- Performance and a smaller binary than pandoc.
- Feature parity with pandoc across all formats and extensions.
- A developer-friendly library, with the CLI as a thin shell over it.
Status
This tracks carta's status of all formats pandoc supports. See STATUS.md for a detailed per-format breakdown including extension coverage, and the full feature backlog.
โ usable ยท ๐ง in development, not recommended for use yet ยท โ not started ยท โ not applicable (pandoc has no such direction)
Markdown family
| Format | Reader | Writer |
|---|---|---|
CommonMark (commonmark) |
โ | โ |
CommonMark-X (commonmark_x) |
โ | โ |
GitHub-Flavored Markdown (gfm) |
โ | โ |
Pandoc Markdown (markdown) |
โ | โ |
Markdown strict (markdown_strict) |
โ | โ |
MultiMarkdown (markdown_mmd) |
โ | โ |
PHP Markdown Extra (markdown_phpextra) |
โ | โ |
GitHub Markdown, legacy (markdown_github) |
โ | โ |
Djot (djot) |
โ | โ |
Markua (markua) |
โ | โ |
HTML & slides
| Format | Reader | Writer |
|---|---|---|
HTML (html, html5, html4) |
โ | โ |
Chunked HTML (chunkedhtml) |
โ | โ |
reveal.js (revealjs) |
โ | โ |
Beamer (beamer) |
โ | โ |
Slidy (slidy) |
โ | โ |
S5 (s5) |
โ | โ |
Slideous (slideous) |
โ | โ |
DZSlides (dzslides) |
โ | โ |
PowerPoint (pptx) |
โ | โ |
TeX & typesetting
| Format | Reader | Writer |
|---|---|---|
LaTeX (latex) |
โ | โ |
Typst (typst) |
โ | โ |
ConTeXt (context) |
โ | โ |
Texinfo (texinfo) |
โ | โ |
PDF (pdf) |
โ | โ |
Lightweight markup
| Format | Reader | Writer |
|---|---|---|
reStructuredText (rst) |
โ | โ |
AsciiDoc (asciidoc) |
โ | โ |
AsciiDoc legacy (asciidoc_legacy) |
โ | โ |
Asciidoctor (asciidoctor) |
โ | โ |
Org mode (org) |
โ | โ |
Textile (textile) |
โ | โ |
Muse (muse) |
โ | โ |
Haddock (haddock) |
โ | โ |
txt2tags (t2t) |
โ | โ |
Perl POD (pod) |
โ | โ |
Wikis
| Format | Reader | Writer |
|---|---|---|
MediaWiki (mediawiki) |
โ | โ |
DokuWiki (dokuwiki) |
โ | โ |
Jira (jira) |
โ | โ |
Creole (creole) |
โ | โ |
TikiWiki (tikiwiki) |
โ | โ |
TWiki (twiki) |
โ | โ |
Vimwiki (vimwiki) |
โ | โ |
XWiki (xwiki) |
โ | โ |
ZimWiki (zimwiki) |
โ | โ |
roff
| Format | Reader | Writer |
|---|---|---|
man (man) |
โ | โ |
mdoc (mdoc) |
โ | โ |
ms (ms) |
โ | โ |
vimdoc (vimdoc) |
โ | โ |
Word processor, ebook & notebook
| Format | Reader | Writer |
|---|---|---|
Word (docx) |
โ | โ |
OpenDocument Text (odt) |
โ | โ |
OpenDocument (opendocument) |
โ | โ |
EPUB (epub, epub2, epub3) |
โ | โ |
Jupyter Notebook (ipynb) |
โ | โ |
FictionBook2 (fb2) |
โ | โ |
InDesign ICML (icml) |
โ | โ |
Rich Text Format (rtf) |
โ | โ |
Spreadsheet (xlsx) |
โ | โ |
XML & publishing
| Format | Reader | Writer |
|---|---|---|
DocBook (docbook, docbook4, docbook5) |
โ | โ |
JATS (jats, jats_archiving, jats_articleauthoring, jats_publishing) |
โ | โ |
BITS (bits) |
โ | โ |
TEI (tei) |
โ | โ |
Generic XML (xml) |
โ | โ |
Bibliography
| Format | Reader | Writer |
|---|---|---|
BibTeX (bibtex) |
โ | โ |
BibLaTeX (biblatex) |
โ | โ |
CSL JSON (csljson) |
โ | โ |
RIS (ris) |
โ | โ |
EndNote XML (endnotexml) |
โ | โ |
Data, interchange & terminal
| Format | Reader | Writer |
|---|---|---|
Pandoc JSON (json) |
โ | โ |
Native Pandoc AST (native) |
โ | โ |
OPML (opml) |
โ | โ |
CSV (csv) |
โ | โ |
TSV (tsv) |
โ | โ |
Plain text (plain) |
โ | โ |
BBCode (bbcode, bbcode_phpbb, bbcode_steam, โฆ) |
โ | โ |
ANSI terminal (ansi) |
โ | โ |
Installation
Prebuilt binaries
Download the archive for your platform from the latest release. Builds are provided for Linux (x86-64 gnu and static musl, arm64), macOS (Intel and Apple Silicon), and Windows (x86-64).
From crates.io
This installs the carta binary. For a smaller build, pass --no-default-features with only the formats you need, e.g. --features cli,read-commonmark,write-html.
From source
# binary at target/release/carta
Usage
Command line
# CommonMark to HTML
# read from stdin, write to stdout
|
# inspect the document model
# standalone document with a table of contents and numbered sections
# discover what this build supports
Library
use ;
let html = convert_text?;
convert_text is the shortcut for text-to-text conversion. The general entry point is convert, which takes raw bytes and returns an Output that is text or bytes depending on the target format.
You can select formats at compile time via per-direction features to make binaries even more lightweight for your individual needs.
Development
License
Copyright ยฉ 2026 Maximilian Krause.
carta is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License, version 3, as published by the Free Software Foundation. See LICENSE for the full text.