Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jplatte/cargo-depgraph
Creates graphviz dependency graphs for Rust projects that use Cargo
https://github.com/jplatte/cargo-depgraph
cargo-plugin rust
Last synced: 4 months ago
JSON representation
Creates graphviz dependency graphs for Rust projects that use Cargo
- Host: GitHub
- URL: https://github.com/jplatte/cargo-depgraph
- Owner: jplatte
- License: gpl-3.0
- Created: 2021-01-27T16:38:33.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-08T10:09:59.000Z (7 months ago)
- Last Synced: 2024-01-18T07:28:18.161Z (6 months ago)
- Topics: cargo-plugin, rust
- Language: Rust
- Homepage:
- Size: 1.71 MB
- Stars: 99
- Watchers: 3
- Forks: 9
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Lists
- awesome-stars - cargo-depgraph
- awesome-stars - jplatte/cargo-depgraph - Creates dependency graphs for cargo projects using `cargo metadata` and graphviz. (Rust)
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](https://graphviz.org/) 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](graph_all.png)
* `--all-deps --dedup-transitive-deps`
![cargo-depgraph's dependency graph with transitive dependency edges de-duplicated](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