Skip to main content

Module crate_graph

Module crate_graph 

Source
Expand description

Build a crate-level dependency graph from a Cargo workspace.

build_crate_graph walks crates/*/Cargo.toml, parses each manifest, and produces two Arrow RecordBatch tables:

  • CrateNode — one row per workspace member crate
  • CrateEdge — one row per dependency relationship

topo_sort_crates runs Kahn’s algorithm over the workspace-internal edges and returns crate names in dependency-first (build) order.

§Example

use nusy_codegraph::crate_graph::build_crate_graph;
use std::path::Path;

let graph = build_crate_graph(Path::new(".")).unwrap();
println!("{} crates, {} edges",
    graph.crate_nodes.num_rows(),
    graph.crate_edges.num_rows());

Structs§

CrateGraph
The two Arrow tables that describe a workspace’s crate dependency graph.

Functions§

build_crate_graph
Build a CrateGraph by scanning all Cargo.toml files under workspace_root.
topo_sort_crates
Topologically sort workspace crate names using Kahn’s algorithm.