Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Getting started

Build

drumlin needs a Rust toolchain and has no other dependencies.

cargo build --release

The binary is target/release/drumlin.

Your first diagram

Create hello.uml:

diagram component "Hello"

component Client { requires IGreeting }
component Server { provides IGreeting }
Hello Client Server IGreeting

Render it:

drumlin render hello.uml -o hello.svg

Both components name IGreeting, so drumlin wires the socket on the client to the lollipop on the server with a dashed dependency arrow. You did not have to draw it. Neither component uses a port; between two ports that have one interface each, drumlin draws a joined ball-and-socket instead. See Interface.

Commands

CommandEffect
drumlin render <file>Writes SVG to stdout
drumlin render <file> -o <out.svg>Writes SVG to a file
drumlin check <file>Validates only. Exit code is 0 when the file is valid

Grow the diagram

Add a package and an ordinary connector:

diagram component "Hello, again"

package "Backend" {
  component Server { provides IGreeting }
  component Store <<database>>
  Server --> Store : read
}

component Client { requires IGreeting }
Hello, again Backend Server «database» Store Client IGreeting read

Continue with File basics, pick a diagram kind under Diagrams (such as Sequence diagrams), or see all the examples.