What problem does it solve?
It helps you understand how Rust functions interact by producing call-graph views for a specific function across an entire workspace, so you can reason about reachability, impact, and crate boundaries without manual code spelunking.
Core Features & Use Cases
- Incoming callers (workspace-wide): Use caller discovery to find every function body that invokes a target, with precise file spans and call categories for triage.
- Outgoing callees (workspace-wide): Use callee discovery to enumerate what a function touches so you can identify downstream responsibilities before refactoring.
- Bounded recursive reachability: Use depth-limited graph expansion to map a reachable call tree and quantify refactor blast radius via transitive caller counts.
- Crate boundary audit: Filter callers to a specific crate to validate architectural rules like “no domain code calls agent/orchestrator.”
- Within-file fallback: Use a parser-based single-file call graph when hypergraph indexing is unavailable, and corroborate results.
Quick Start
Ask for the workspace-wide callers of a function named crate::my_fn and return who calls it, then optionally ask for the transitive reachability count to estimate refactor risk.