Expand description
The project graph engine.
killer graph builds a structural map of a project: which source files
import which external modules, and which dependencies the project declares
in its manifests. From those two views it derives a supply-chain signal —
declared dependencies that no source file appears to import (“possibly
unused”).
This is deliberately a structural graph, not a semantic/data-flow one. Import
extraction is line-level and per-language; dependency-usage matching is a
best-effort name normalization (so pretty-env-logger in Cargo.toml
matches use pretty_env_logger). A true multi-language IR and data-flow
graph remain on the roadmap.
Structs§
- Dependency
Node - A declared dependency (from a manifest) plus whether the project uses it.
- Edge
- A file → module import edge.
- File
Node - A source file node.
- Project
Graph - The complete project graph.
Functions§
- extract_
imports - Extract the external modules a file imports (deduped, sorted).
- parse_
manifest - Parse a manifest file into
(dependency_name, is_dev)pairs. Non-manifest files yield nothing. - rust_
crate_ referenced - Whether any Rust file references a crate via a fully-qualified path
(
crate_ident::…) — the idiomatic way to use a crate without ause. Cargo crate names use hyphens; the Rust identifier uses underscores.