3 stable releases
1.1.0 | Dec 23, 2023 |
---|---|
1.0.6 | Sep 5, 2023 |
1.0.4 | Jul 8, 2023 |
#232 in Cargo plugins
45KB
1K
SLoC
Cargo Graphmod
A cargo
subcommand for building Graphviz DOT files of dependency graphs between the modules of a package.
Prerequisites
- You need to install Graphviz.
Installing
cargo-graphmod
can be installed with cargo install
:
cargo install cargo-graphmod
Usage
cd my_rust_package
cargo graphmod | tred | dot -Tsvg > modules.svg
- Assumptions:
- You should run the command from the root of your project (just above
src
). - By default, the package name (as defined in
Cargo.toml
) is supposed to be the directory name. Otherwise pass it as argument:cargo graphmod a_different_name
.
- You should run the command from the root of your project (just above
- Use
tred
if you want the transitive reduction of the graph. - You can export to a lot of different formats.
Known limitations
- Detects only dependencies introduced by the
use
keyword. - Detects only dependencies before the first
#[cfg(test)]
(in order to eliminate the dependencies from unit tests). - Works best when there is a bijection between modules and files / directories.
License
cargo-graphmod
is released under the terms of the GPLv3 license.
Cargo Graphmod's graph
Other example
Dependencies
~2.1–3MB
~54K SLoC