blueprint
is a tool to document and visualize your software architecture, based on the C4 software architecture model.
First install graphviz for your OS, then
go get github.com/urld/blueprint/cmd/blueprint
go get github.com/urld/blueprint/cmd/blueprint-export
Run blueprint for a specific project directory to launch an interactive http server:
blueprint test/ok
It is also possible to export all views as html, so there is no need to keep the http server running all the time:
blueprint-export -project test/ok/ -output export/dir/
A project directory can contain multiple textfiles containing an architecture description of the following syntax (currently similar to structurizr express):
Persona = Name | Description | Tags
System = Name | Description | Tags
Container = System Name | Name | Description | Technology | Tags
Component = Container Name | Name | Description | Technology | Tags
Relationship = Source Name | Description | Technology | Destination Name | Tags
SystemContext = CoreSystems | ExternalSystems | Name | Description
Tags
, CoreSystems
and ExternalSystems
accept comma separated lists of values.
To span elements across multiple lines, the lines have to end with \
:
Persona = Somebody \
| does something \
| some tag
Lines beginning with #
are ignored as comments.
A complete example including all possible elements can be found within test/ok
.
- improved layout
- more expressive syntax?
- more detailed usage documentation