carta
A universal document converter written in Rust. Read a markup format, render it back out in another. A fast, lightweight reimplementation of pandoc.
[!WARNING] carta is still in active development. Not all of pandoc's formats and features are implemented yet and the API is still unstable.
Goals
- Performance and a lightweight binary.
- A developer-friendly library, with the CLI as a thin shell over it.
- Feature parity with pandoc across all formats and extensions.
Status
carta already supports the most-used pandoc formats; the rest are in active development. STATUS.md has a per-format breakdown, extension coverage, and the full feature backlog.
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).
With cargo-binstall installed, the matching prebuilt binary can be fetched directly:
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 shrink the binary further.
Development
License
Copyright © 2026 Maximilian Krause.
Licensed under either of
- Apache License, Version 2.0 (
LICENSE-APACHEor http://www.apache.org/licenses/LICENSE-2.0) - MIT license (
LICENSE-MITor http://opensource.org/licenses/MIT)
at your option.
The syntax-highlighting grammar files are third-party works that retain their own upstream licenses; see vendor/syntax-highlighting/ATTRIBUTION.md. Only permissively licensed grammars are compiled into carta. The remaining grammars (copyleft or unspecified licenses) ship through an optional feature.