#cargo-metadata #graph #graphviz #transitive #create #projects #generate

app cargo-depgraph

Creates dependency graphs for cargo projects using cargo metadata and graphviz

15 stable releases

1.6.0 Dec 7, 2023
1.5.0 Jun 26, 2023
1.4.0 Nov 23, 2022
1.2.5 Jun 23, 2022
0.1.0 Jul 9, 2020

#59 in Cargo plugins

Download history 90/week @ 2024-08-02 91/week @ 2024-08-09 64/week @ 2024-08-16 105/week @ 2024-08-23 166/week @ 2024-08-30 62/week @ 2024-09-06 62/week @ 2024-09-13 117/week @ 2024-09-20 108/week @ 2024-09-27 64/week @ 2024-10-04 63/week @ 2024-10-11 85/week @ 2024-10-18 71/week @ 2024-10-25 92/week @ 2024-11-01 75/week @ 2024-11-08 47/week @ 2024-11-15

303 downloads per month

GPL-3.0-or-later

37KB
756 lines

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

Dependencies

~4–5MB
~85K SLoC