https://github.com/dburriss/fucturizr
A DSL for working with Structurizr
https://github.com/dburriss/fucturizr
architecture-visualization dsl fsharp structurizr
Last synced: 11 months ago
JSON representation
A DSL for working with Structurizr
- Host: GitHub
- URL: https://github.com/dburriss/fucturizr
- Owner: dburriss
- License: mit
- Created: 2018-08-29T10:17:38.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-09-07T13:20:23.000Z (almost 8 years ago)
- Last Synced: 2025-04-16T19:49:24.461Z (about 1 year ago)
- Topics: architecture-visualization, dsl, fsharp, structurizr
- Language: F#
- Size: 217 KB
- Stars: 5
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Fucturizr
A DSL for f#cking around with [Structurizr](https://c4model.com).
[](https://ci.appveyor.com/project/dburriss/Fucturizr)
[](http://myget.org/gallery/dburriss-ci)
[](https://www.nuget.org/packages/Fucturizr.Core/)
## Features
- [ ] Types to describe diagrams
- [ ] Serialize to JSON
- [ ] Deserialize from JSON
- [ ] High-level strongly typed DSL for defining diagrams
- [ ] Low level data structure that interops with [Structurizr .NET](https://github.com/structurizr/dotnet)
- [ ] Styles
- [ ] Export to Graphviz
- [ ] Export to Structurizr.Dgml
- [ ] Other export formats...
## Sample diagram definition
Below is the definition of a landscape diagram. See the [script file example](/examples/system-landscape.fsx) of using this to generate the Structurizr json.
```fsharp
let contract_management_landscape_diagram =
system_landscape_diagram "Contract Management" "A test description" Size.A5_Landscape {
user (A.person "Buyer" "Negotiates policies with suppliers and orders..." (730,230))
system (A.system "Acme Contract Management System" "Manages contracts negotiated with suppliers" (705,830))
relationship "Buyer" "Captures contracts" "Acme Contract Management System"
}
```
This results in [the following json](/examples/system-landscape.json) that can then be [used to generate](https://structurizr.com/express?src=https://raw.githubusercontent.com/dburriss/Fucturizr/master/examples/system-landscape.json) the landscape diagram.

## Links
1. [C4 Diagrams](https://c4model.com/)
1. [Structurizr Express](https://structurizr.com/express)
1. [Structurizr.Dgml](https://github.com/merijndejonge/Structurizr.Dgml)
1. [Graphviz](https://graphviz.gitlab.io/)