This GitHub repository contains an implementation of the Structurizr DSL - a way to create Structurizr software architecture models based upon the C4 model using a textual domain specific language (DSL). The Structurizr DSL has appeared on the ThoughtWorks Tech Radar - Techniques - Diagrams as code and is text-based wrapper around the Structurizr for Java library.
As an example, the following text can be used to create a software architecture model and an associated view that describes a user using a software system.
workspace {
model {
user = person "User"
softwareSystem = softwareSystem "Software System"
user -> softwareSystem "Uses"
}
views {
systemContext softwareSystem {
include *
autolayout lr
}
}
}
- Structurizr DSL demo page
- Getting started with Structurizr Lite (using the DSL)
- Diagrams as code 2.0 (video from GOTO Copenhagen 2021)
The Structurizr DSL itself does not create diagrams, and is rendering tool independent, there being a number of tools that can be used to render diagrams. Please note that the feature set and look/feel of the resulting diagrams will vary between tools.
- Structurizr Lite/on-premises/cloud service: A browser-based diagram and documentation rendering tool with interactive diagrams, "double-click to zoom", etc.
- c4viz: A browser-based diagram renderer, with diagram navigation and "click to zoom".
- Structurizr Site Generatr: Generates a HTML microsite with diagrams, documentation, and a UI to explore the model.
- Kroki: Kroki generates diagrams from a number of text-based formats, including the Structurizr DSL.
- Git for Confluence | Markdown, PlantUML, Graphviz, Mermaid: A Confluence plugin that will render a specific diagram from a Structurizr DSL file stored in your git repo.
- Structurizr Export: A collection of Java classes to generate diagrams as PlantUML, Mermaid, D2, DOT, and WebSequenceDiagrams. An export to Ilograph is also available.
- Structurizr CLI: A command line tool that bundles the Structurizr Export utilities.
- VS Code extension (syntax highlighting and diagram previews; please note that there are some known issues with the syntax highlighting - see Divergences for more details, and Examples for examples that work correctly with the extension)
- VS Code extension (syntax highlighting)