A DSL for working with Structurizr
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.paket
assets
examples
src/Fucturizr.Core
test/Fucturizr.Core.Tests
.gitignore
Fucturizr.sln
LICENSE
README.md
appveyor.yml
install.ps1
paket.dependencies
paket.lock

README.md

Fucturizr

A DSL for f#cking around with Structurizr.

Build status MyGet CI NuGet CI

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
  • 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 of using this to generate the Structurizr json.

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 that can then be used to generate the landscape diagram.

Contract Management System Landscape Diagram

Links

  1. C4 Diagrams
  2. Structurizr Express
  3. Structurizr.Dgml
  4. Graphviz