Rust Dependencies Visualizer
Generate ASCII art visualizations of your Rust project's dependency tree.
Usage
/rust-deps-visualizer [--depth N] [--features]
Options:
-
--depth N : Limit tree depth (default: 3)
-
--features : Show feature flags
Output Format
Simple Tree (Default)
my-project v0.1.0 ├── tokio v1.49.0 │ ├── pin-project-lite v0.2.x │ └── bytes v1.x ├── serde v1.0.x │ └── serde_derive v1.0.x └── anyhow v1.x
Feature-Aware Tree
my-project v0.1.0 ├── tokio v1.49.0 [rt, rt-multi-thread, macros, fs, io-util] │ ├── pin-project-lite v0.2.x │ └── bytes v1.x ├── serde v1.0.x [derive] │ └── serde_derive v1.0.x (proc-macro) └── anyhow v1.x [std]
Implementation
Step 1: Parse Cargo.toml for direct dependencies
cargo metadata --format-version=1 --no-deps 2>/dev/null
Step 2: Get full dependency tree
cargo tree --depth=${DEPTH:-3} ${FEATURES:+--features} 2>/dev/null
Step 3: Format as ASCII art tree
Use these box-drawing characters:
-
├── for middle items
-
└── for last items
-
│
for continuation lines
Visual Enhancements
Dependency Categories
my-project v0.1.0 │ ├─[Runtime]───────────────────── │ ├── tokio v1.49.0 │ └── async-trait v0.1.x │ ├─[Serialization]─────────────── │ ├── serde v1.0.x │ └── serde_json v1.x │ └─[Development]───────────────── ├── criterion v0.5.x └── proptest v1.x
Size Visualization (Optional)
my-project v0.1.0 ├── tokio v1.49.0 ████████████ 2.1 MB ├── serde v1.0.x ███████ 1.2 MB ├── regex v1.x █████ 890 KB └── anyhow v1.x ██ 120 KB ───────────────── Total: 4.3 MB
Workflow
-
Check for Cargo.toml in current directory
-
Run cargo tree with specified options
-
Parse output and generate ASCII visualization
-
Optionally categorize by purpose (runtime, dev, build)
Related Skills
When See
Crate selection advice m11-ecosystem
Workspace management m11-ecosystem
Feature flag decisions m11-ecosystem