luszak / dsl

Structurizr DSL

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Structurizr

Structurizr DSL

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.

A quick example

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
        }
    }
    
}

Example system context diagram

Getting started

Reference

Examples

Rendering tools

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.

Other tooling support

About

Structurizr DSL

License:Apache License 2.0


Languages

Language:Java 91.3%Language:ASL 8.6%Language:JavaScript 0.0%Language:Groovy 0.0%Language:Kotlin 0.0%Language:Ruby 0.0%Language:Mermaid 0.0%