cargo-depgraph
Creates dependency graphs for cargo projects using cargo metadata
and graphviz.
Installation
cargo install cargo-depgraph
If you are using Arch Linux, you can alternatively install via pacman -S cargo-depgraph
.
Usage
Note: This assumes you have Graphviz installed. There are also online
tools that can generate graphics from the textual graphviz graphs cargo depgraph
generates, if
the command-line graphviz tools like dot
aren't your thing.
cargo depgraph [options] | dot -Tpng > graph.png
The full list of options can be seen by running
cargo depgraph --help
Commonly useful options:
![cargo-depgraph's dependency graph](https://github.com/jplatte/cargo-depgraph/raw/main/graph_all.png)
--all-deps --dedup-transitive-deps
![cargo-depgraph's dependency graph with transitive dependency edges de-duplicated](https://github.com/jplatte/cargo-depgraph/raw/main/graph_all_deduped.png)
Output explanation
- square node = root / workspace member
- grey background = target-specific dependency
- dotted lines = optional dependency (could be removed by disabling a cargo feature)
- dashed lines = transitively optional dependency (could be removed by removing one of the dotted
edges)
- line colors = dependency kinds w.r.t. root / workspace members
- black = normal
- blue = dev-dependency
- green = build-dependency
- light turquoise = build-dependency of a dev-dependency
- dark green = both normal and build-dependency
- violet = both dev-dependency and build-dependency
- … not seen in the wild yet, but theoretically possible:
- dark turquoise = both normal and build-dependency of a dev-dependency
- pastel blue = both dev-dependency and build-dependency of a dev-dependency
- red = you broke it