Show HN: Mmdr – 1000x faster Mermaid rendering in pure Rust (no browser)

github.com

35 points by jeremyh1 a day ago

I was building a Rust-based agentic coding TUI and needed to render Mermaid diagrams. Noticed the official mermaid-cli spawns a full browser instance (Puppeteer/Chrome) just to render diagrams. Decided to fix this.

mmdr is a native Rust renderer. No browser, no Node.js.

  mermaid-cli:  ~3000ms per diagram
  mmdr:         ~3ms per diagram
Supports 13 diagram types: flowchart, sequence, class, state, ER, pie, gantt, timeline, journey, mindmap, git graph, XY chart, and quadrant.
tricked 6 hours ago

This is really neat, i wonder if this could be made into a typst plugin now so that you can create mermaid code blocks that turn into diagrams when rendered. The original mermaid can't be added to typst sadly but i bet this could.

jackothy 20 hours ago

Does it make sense to create a Wasm build of this for the browser? Or is the speedup mainly due to the browser spawning step rather than execution/rendering itself?

  • dzogchen 10 hours ago

    I reckon the main speed up is from not having to launch a browser.

    • danhau 9 hours ago

      Mermaid can also be used inside the browser directly, I believe. The WASM compiled Rust implementation could still outperform it.

      • jackothy 8 hours ago

        Exactly, that's what I wanted to know. No other way to find out than to test, though. Don't know how easy it would be to wire it up.