Skip to content

samlitowitz/godepvis

Repository files navigation

Go Import Cycle

Go Report Card Pipes

godepvis is a tool to visualize Go imports resolved to the package or file level.

Installation

go install github.com/samlitowitz/godepvis/v3/cmd/godepvis@latest

Usage

godepvis --path examples/simple/ --dot imports.dot
dot -Tpng -o assets/example.png imports.dot

Example import graph resolved to the file level

Red lines indicate files causing import cycles between packages. Packages involved in a cycle have their backgrounds colored red.

godepvis --path examples/simple/ --dot imports.dot --resolution package
dot -Tpng -o assets/example.png imports.dot

Example import graph resolved to the package level

Red lines indicate import cycles between packages.

Configuration

The palette file follows the JSON Schema outlined in assets/palette-schema.

The simple-palette example uses the following schema...

base:
  packageName: "rgb(174, 209, 230)"
  packageBackground: "rgb(207, 232, 239)"
  fileName: "rgb(160, 196, 226)"
  fileBackground: "rgb(198, 219, 240)"
  importArrow: "rgb(133, 199, 222)"
cycle:
  packageName: "#FFB3C6"
  packageBackground: "#FFE5EC"
  fileName: "#FF8FAB"
  fileBackground: "#FFC2D1"
  importArrow: "#FB6F92"

...to produce the following outputs...

Example import graph resolved to the file level

Example import graph resolved to the package level

About

Visualize Go intra-module dependencies

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •