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


#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.



The page you only need when something is odd.