What problem does it solve?
Enforcing architectural layering and dependency rules across a Rust workspace so layering breaks are detected early and made actionable.
Core Features & Use Cases
- Declarative crate-edge rules: Define producer/consumer constraints using glob-style crate-name patterns with optional per-rule severity and custom messages.
- CI-friendly violation reporting: Returns concrete violation rows (one per matching rule × edge) with sample symbols and reference counts so teams can triage quickly.
- Workspace-wide scope: Runs over crate-level
crate_edges after building the persisted hypergraph, enabling consistent enforcement across many crates.
- Triaging support loop: Pairs well with follow-up symbol/file inspection tools to confirm legitimacy or fix the layering break.
Quick Start
Run the forbidden dependency check for your workspace by building the hypergraph first, then provide your rule list to forbidden_dependency_check(directory=..., rules=[...]) to get pass/fail violations.