merman
Headless Mermaid in Rust.
This crate is a convenience wrapper around:
merman-core (parsing + semantic JSON model)
merman-render (layout + parity-focused SVG)
Baseline: Mermaid @11.12.2 (upstream Mermaid is treated as the spec).
Features
render: enable layout + SVG rendering APIs
raster: enable PNG/JPG/PDF output via pure-Rust SVG rasterization/conversion
Quickstart
use merman_core::{Engine, ParseOptions};
use merman::render::{headless_layout_options, render_svg_sync, sanitize_svg_id, SvgRenderOptions};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let engine = Engine::new();
let layout = headless_layout_options();
let svg_opts = SvgRenderOptions {
diagram_id: Some(sanitize_svg_id("example-diagram")),
..Default::default()
};
let svg = render_svg_sync(
&engine,
"flowchart TD; A-->B;",
ParseOptions::default(),
&layout,
&svg_opts,
)?
.unwrap();
println!("{svg}");
Ok(())
}
For parity policy and gates, see docs/alignment/STATUS.md in the repository.