Skip to content

YoofiTT96/dsl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

424 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • 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)

About

Structurizr DSL

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Java 91.5%
  • ASL 8.5%
  • JavaScript 0.0%
  • Groovy 0.0%
  • Kotlin 0.0%
  • Ruby 0.0%