115 lines
2.7 KiB
Markdown
115 lines
2.7 KiB
Markdown
---
|
|
name: rust-deps-visualizer
|
|
description: "Visualize Rust project dependencies as ASCII art. Triggers on: /deps-viz, dependency graph, show dependencies, visualize deps, 依赖图, 依赖可视化, 显示依赖"
|
|
argument-hint: "[--depth N] [--features]"
|
|
allowed-tools: ["Bash", "Read", "Glob"]
|
|
---
|
|
|
|
# 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
|
|
|
|
```bash
|
|
cargo metadata --format-version=1 --no-deps 2>/dev/null
|
|
```
|
|
|
|
**Step 2:** Get full dependency tree
|
|
|
|
```bash
|
|
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
|
|
|
|
1. Check for Cargo.toml in current directory
|
|
2. Run `cargo tree` with specified options
|
|
3. Parse output and generate ASCII visualization
|
|
4. 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 |
|