cargo-depgraph

Crates.iocargo-depgraph
lib.rscargo-depgraph
version1.6.0
sourcesrc
created_at2020-07-09 18:47:51.390494
updated_at2023-12-07 17:35:58.334059
descriptionCreates dependency graphs for cargo projects using `cargo metadata` and graphviz.
homepagehttps://sr.ht/~jplatte/cargo-depgraph/
repositoryhttps://git.sr.ht/~jplatte/cargo-depgraph
max_upload_size
id262958
size82,868
Jonas Platte (jplatte)

documentation

README

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:

  • --all-deps

cargo-depgraph's dependency graph

  • --all-deps --dedup-transitive-deps

cargo-depgraph's dependency graph with transitive dependency edges de-duplicated

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
Commit count: 0

cargo fmt