PlantUML is a highly versatile tool that facilitates the rapid and straightforward creation of a wide array of diagrams.
Utilizing a simple and intuitive language, users can effortlessly draft various types of diagrams.
For a detailed exploration of the language's capabilities and syntax, please refer to the PlantUML Language Reference Guide.
If you are new to PlantUML, we recommend starting with our quick start page to get up
and running quickly. Should you have any questions, our F.A.Q. page is a valuable resource.
Additionally, PlantUML can be seamlessly integrated with a variety of other tools to enhance your workflow.
🧩 Supported UML Diagrams
With PlantUML, you can create well-structured UML diagrams, including but not limited to:
PlantUML allows you to use several different layout engines:
Graphviz is the default engine. Relies on an external program;
Smetana. (Use !pragma layout smetana in the file or -Playout=smetana on the command-line.) A port of Graphviz to Java. Tends to make slightly straighter arrows;
VizJs uses JavaScript. (Use -graphvizdot vizjs on the command line.) Tends to space out nodes more, resulting in a bigger diagram;
ELK (Eclipse Layout Kernel). (Use !pragma layout elk in the file or -Playout=elk on the command-line.) Supports only orthogonal layout, and doesn't cover all features.
Teoz(Use !pragma teoz true in the file or -Pteoz=true on the command-line) is a new engine that has some unique features: anchors (named arrows/messages), duration, nested boxes...
Achieving good layout with PlantUML is sometimes non-trivial.
See PlantUML GraphViz Layout by Mark George at University of Otago for more advice.
📤 Output Formats
Export your diagrams in a variety of formats to suit your needs, including: