Mermaid vs PlantUML vs Graphviz
Trois outils de texte-vers-diagramme, trois usages différents. Mermaid est concis et s'affiche dans le navigateur ; PlantUML est le plus poussé pour l'UML ; Graphviz dispose les grands graphes. Voici en quoi ils diffèrent réellement.
⚠️ Divulgation : nous développons un éditeur Mermaid gratuit. Les critères ci-dessous — syntaxe, types de diagrammes, mode de rendu de chacun, prise en charge GitHub — sont objectifs ; vérifiez chacun d'eux dans la documentation propre à chaque projet.
| Outil | Style de syntaxe | Types de diagrammes | Mode de rendu | Natif sur GitHub | Idéal pour |
|---|---|---|---|---|---|
| Mermaid | Concise, proche de Markdown | Diagramme de flux, séquence, ER, classes, états, Gantt, carte mentale, camembert, et plus | JavaScript — s'affiche dans le navigateur | Oui — natif dans Markdown | Docs-as-code dans les README, wikis et notes |
| PlantUML | DSL verbeux (@startuml … @enduml) | L'ensemble UML le plus complet, plus de nombreux diagrammes non-UML | Java — un serveur PlantUML ou un jar local | Non — nécessite une image pré-rendue | Modélisation UML poussée et exhaustive |
| Graphviz (DOT) | Langage de description de graphes (digraph { … }) | Graphes génériques nœuds-et-arêtes, arbres, cartes de dépendances | Moteur Graphviz (dot) ; portages WASM pour le navigateur | Non — nécessite une image pré-rendue | Grands graphes et hiérarchies disposés automatiquement |
« Natif sur GitHub » signifie que le diagramme s'affiche à partir de sa source dans Markdown, sans aucun téléversement d'image. PlantUML et Graphviz nécessitent un SVG/PNG pré-rendu pour apparaître sur GitHub.
Quand choisir chacun
Choisissez Mermaid lorsque le diagramme documente du code et doit vivre dans le dépôt — un croquis d'architecture dans un README, un diagramme de séquence dans un document de conception, un schéma dans un wiki. Il s'affiche nativement sur GitHub et GitLab, donc les relecteurs le voient en ligne, et la syntaxe est assez légère pour s'écrire au fil de la prise de notes.
Choisissez PlantUML lorsque vous avez besoin d'un UML rigoureux et complet — hiérarchies de classes détaillées, diagrammes de composants et de déploiement, ou un contrôle précis sur la notation. Vous échangez le rendu natif sur GitHub et la concision contre la profondeur, et vous faites tourner un serveur PlantUML (ou le jar) pour produire les images.
Choisissez Graphviz lorsque le « diagramme » est en réalité un grand graphe dont vous ne voulez pas placer la disposition à la main — graphes de dépendances, graphes d'appels, grandes machines à états. Son langage DOT associé à un moteur de disposition automatique gère des centaines de nœuds qu'il serait ingérable de dessiner manuellement.
Si vous êtes arrivé ici pour créer un diagramme tout de suite, le chemin le plus rapide est Mermaid.
Voir aussi: Éditeur Mermaid · UML / classe · Exemples · Intégrer Mermaid
Questions fréquemment posées
Mermaid vs PlantUML — lequel est le meilleur ?
Aucun n'est strictement meilleur ; ils visent des usages différents. Mermaid est concis et s'affiche nativement dans Markdown sur GitHub et GitLab, ce qui le rend idéal pour la documentation qui vit à côté du code. PlantUML offre un ensemble de fonctionnalités UML bien plus complet et un contrôle plus fin, mais il s'affiche via un serveur Java et n'est pas dessiné nativement sur GitHub. Choisissez Mermaid pour des docs-as-code rapides, PlantUML pour de l'UML exhaustif.
Mermaid peut-il tout faire ce que fait PlantUML ?
Non. PlantUML couvre davantage de types de diagrammes UML et offre un contrôle plus poussé du style et de la disposition. Mermaid couvre les diagrammes dont la plupart des équipes ont besoin au quotidien — diagrammes de flux, séquence, ER, classes, états et Gantt — avec beaucoup moins de syntaxe. Si vous avez besoin d'UML avancé comme des diagrammes de composants ou de déploiement détaillés, PlantUML va plus loin.
Graphviz est-il identique à Mermaid ?
Non. Graphviz utilise le langage DOT et excelle à disposer automatiquement de grands graphes nœuds-et-arêtes — arbres de dépendances, graphes d'appels, machines à états. Mermaid est de plus haut niveau et connaît les types de diagrammes (il sait ce qu'est un diagramme de séquence), et il s'affiche dans le navigateur et sur GitHub. Pour un grand graphe généré, le moteur de disposition de Graphviz est difficile à battre ; pour des diagrammes de documentation lisibles, Mermaid est plus rapide à écrire.
GitHub affiche-t-il PlantUML ou Graphviz ?
GitHub affiche Mermaid nativement dans les blocs délimités ```mermaid, mais pas PlantUML ni Graphviz. Pour ces derniers, vous générez une image (SVG ou PNG) avec leur moteur de rendu, puis vous validez ou liez cette image dans votre Markdown.
Puis-je convertir PlantUML en Mermaid automatiquement ?
Il n'existe pas de convertisseur fiable en un clic — les syntaxes et les ensembles de fonctionnalités diffèrent, donc une conversion propre implique généralement de réécrire le diagramme à la main. La bonne nouvelle, c'est que les types courants (séquence, classes, états) se correspondent étroitement, donc une réécriture manuelle est rapide pour les diagrammes du quotidien.