draw

module
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 15, 2019 License: MIT

README

Build Status codecov Maintainability

draw - package for writing software design diagrams

  • Cross platform
  • No external dependencies
  • SVG output

Program your diagrams and refactoring automatically updates them. Take a look at the below examples and then browse the showcase of golang standard packages.

Sequence diagram

var (
    d   = design.NewSequenceDiagram()
    cli = d.AddStruct(app.Client{})
    srv = d.AddStruct(app.Server{})
    db  = d.AddStruct(sql.DB{})
)
d.Link(cli, srv, "connect()")
d.Link(srv, db, "SELECT").Class = "highlight"
d.Link(db, srv, "Rows")
d.Link(srv, srv, "Transform to view model").Class = "highlight"
d.Link(srv, cli, "Send HTML")

Activity diagram

Rendered by example_test.go/ExampleActivityDiagram

Class diagram

Class diagrams show relations between structs and interfaces. Reflection includes fields and methods.

This diagram is rendered by example_test.go/ExampleClassDiagram

Generic diagram

It should be easy to just add any extra shapes to any diagram when explaining a design. This diagram is rendered by example_test.go/ExampleDiagram

Grid layout

Simplifying placing shapes in a grid layout aligning different sizes of shapes.

TODO

  • Labeled arrows
  • Link to optional godoc service
  • More shapes

WIP - major rewrites still going on

Directories

Path Synopsis
internal
app
cmd/dog command
Package shape provides various SVG shapes
Package shape provides various SVG shapes
design
Package draw provides svg diagram creators
Package draw provides svg diagram creators
Package xy provides xy Position
Package xy provides xy Position

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL