Mermaid Ecosystem

History of the Mermaid diagram language and its native (non-browser) ports.

Timeline

DateEventStars
Nov 2014mermaid.js created by Knut Sveidqvist — JS library rendering text-based diagrams in the browser86k
2019mermaid-cli (mmdc) released — wraps mermaid.js via Puppeteer/Chromium for CLI rendering4.2k
Feb 2022GitHub adds native Mermaid rendering in Markdown files
2022Mermaid Chart Inc. founded by Sveidqvist (commercial hosted editor)
Oct 2023go-mermaid by TyphonHill — Go API for generating Mermaid diagram text programmatically (not a renderer)40
Jan 2026mermaid-rs-renderer (mmdr) — first pure native Mermaid renderer, in Rust, by 1jehuang1k
Feb 2026merman — independent Rust re-implementation by Latias94 (early stage)1
Feb 2026mermaid-go-renderer (mmdg) — Go port of the Rust renderer, by bvolpato1
Feb 2026drummonds/mermaid-go-renderer — fork of bvolpato's Go port0

Lineage

mermaid.js (JS, 2014, Sveidqvist) — 86k stars     The original. Browser-based renderer.
├── mmdc / mermaid-cli (JS+Puppeteer, 2019) │      CLI wrapper: spawns headless Chrome to render. │      Slow (~1-3s per diagram), needs Chromium installed. │ ├── go-mermaid (Go, Oct 2023, TyphonHill) — 40 stars │      Go API to generate Mermaid text (not a renderer). │      Useful for building diagrams programmatically. │ ├── mmdr / mermaid-rs-renderer (Rust, Jan 2026, 1jehuang) — 1k stars │      First pure native re-implementation. No browser. │      100-1400x faster than mmdc. 23 diagram types incl. C4. │ ├── merman (Rust, Feb 2026, Latias94) │      Independent Rust re-implementation (early/separate effort). │ └── mmdg / mermaid-go-renderer (Go, Feb 2026, bvolpato)         Go port, inspired by the Rust renderer. ~158x faster than mmdc.         23 diagram types incl. C4.         │         └── drummonds/mermaid-go-renderer (Go, Feb 2026)                 Fork for C4 layout improvements.

Comparison

ToolLanguageRenderingC4 SupportSpeed vs mmdcStatus
mermaid.js JavaScriptBrowser / DOMYes (reference)n/a (client-side)Active, 86k stars
mmdc JS + PuppeteerHeadless ChromeYes1x (baseline)Active
mmdr RustNative SVGYes100-1400xActive, 1k stars
merman RustNative SVGUnknownUnknownEarly stage
mmdg GoNative SVGYes~158xNew (Feb 2026)
mmdg (fork) GoNative SVGYes (improving)~158xFork
Note: The Go and Rust native renderers are all very new (early 2026). C4 layout quality in the native renderers lags behind mermaid.js — this project (c4test) exists to compare the output side-by-side.

Other Go Mermaid Projects (not renderers)

These generate Mermaid text or wrap the JS renderer — they don't parse/render natively:

ProjectWhat it does
go-mermaid Go API to generate Mermaid diagram text
mermaid.go Wraps mermaid.js via chromedp (needs Chrome)
anz-bank/mermaid-go Wraps mermaid.js via chromedp
goldmark-mermaid Goldmark Markdown extension; calls mmdc for server-side rendering
mermaidgen OOP Go API to generate Mermaid text

← Home | Diagram comparison