Diagram engine versions
Diagrams are drawn by three different things: your browser, our rendering service, or a renderer you host yourself. Which one applies depends on the language.
Engine versions are pinned deliberately. An engine that upgrades itself would silently change how existing diagrams look, and a diagram that changes on its own is worse than one that is slightly out of date.
#When you need this page
A diagram that renders differently from the same source elsewhere.
Planning a self-hosted renderer and needing compatibility details.
Checking whether a syntax feature is available yet.
#The detail
Field | What it does |
|---|---|
Browser | draw.io and Excalidraw draw entirely in your browser. |
Rendering service | Every text language: Mermaid, PlantUML, Graphviz, D2 and the rest. |
BPMN and DMN editors | Browser-based modellers, rendering the standard files. |
Self-hosted | Any Kroki-compatible server you point us at, for the text languages. |
#What draws each language
Language | Drawn by |
|---|---|
draw.io, Excalidraw | Your browser |
BPMN, DMN | Your browser, in the modeller |
Mermaid, PlantUML, C4, Structurizr | Rendering service |
Graphviz, D2, Nomnoml, Pikchr | Rendering service |
DBML, ERD | Rendering service |
Vega, Vega-Lite | Rendering service |
BlockDiag family, Bytefield, WaveDrom, WireViz, Symbolator | Rendering service |
Ditaa, Svgbob | Rendering service |
TikZ | Rendering service, and disabled until an admin enables it |
The rendering service is Kroki-compatible. That is what makes the self-hosted option possible: point us at your own Kroki server and the same source renders inside your network.
#A few things that catch people out
Pinned versions mean a syntax feature released upstream this week may not render yet.
Browser-rendered languages behave differently for anonymous readers, who get a stored image instead.
A self-hosted renderer must be Kroki-compatible. Setup is covered in Administration.
#Related
The page you only need when something is odd.
