Choreo.Render.DOT (Choreo v0.6.0)

Copy Markdown View Source

DOT (Graphviz) rendering for Choreo architecture diagrams.

This module translates a Choreo struct into the DOT language with sensible defaults for infrastructure diagrams:

  • Databases are rendered as cylinders
  • Caches as octagons
  • Services as 3D boxes
  • Networks as clouds
  • Users as double circles
  • Load balancers as hexagons
  • Queues as components
  • Storage as tabs

Edges are styled according to their semantic type (:connection or :dataflow).

Themes (built-in or custom) control colours, shapes, fonts, and layout. See Choreo.Theme for details.

Summary

Functions

Renders a Choreo to a DOT string.

Functions

to_dot(system, opts \\ [])

@spec to_dot(
  Choreo.t(),
  keyword()
) :: String.t()

Renders a Choreo to a DOT string.

Options

  • :theme - :default, :dark, :minimal, or a Choreo.Theme struct
  • :subgraphs - list of subgraph / cluster definitions (manual override)
  • :ranks - rank constraints
  • Any other option accepted by Yog.Render.DOT.to_dot/2

Examples

dot = Choreo.Render.DOT.to_dot(system)
dot = Choreo.Render.DOT.to_dot(system, theme: :dark)

theme = Choreo.Theme.custom(colors: [database: "#ff0000"])
dot = Choreo.Render.DOT.to_dot(system, theme: theme)