dburriss / Fucturizr

A DSL for working with Structurizr

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

A DSL for working with Structurizr

License:MIT License


Languages

Language:F# 99.3%Language:PowerShell 0.7%