Móðguðr — complete overview
The real README: the full pitch, the competitive matrix, what each engine does, and the quickstart. The repo-root
README.mdis the slim face (title · mashup · pointers); this chapter is the heavy detail, and it is also folded into the manualdocs/manual.pdfbynornir docs book.
The nordisk supply-chain gatekeeper: a leaf Rust crate that hands any artifact a CVE / license / provenance verdict (Pass / Warn / Block) — and, with its heavy SCIP engine, diffs the behaviour of your entire dependency world between two snapshots over a time-travelling Iceberg warehouse.
Why Móðguðr — a scanner hands you today's verdict; modgunn also remembers every advisory and every world-snapshot, and tells you what changed. The rows marked NA are categories the scanners have no concept for (vs Trivy · Snyk · Dependency-Track; Grype / OSV-Scanner sit alongside Trivy):
| capability | modgunn | Trivy | Snyk | Dependency-Track |
| Multi-ecosystem CVE / license / provenance verdict (Pass / Warn / Block) | ✅ | ✅ | ✅ | ✅ |
| Exploit-intel gating — KEV + EPSS thresholds + VEX suppression | ✅ | ◐ | ✅ | ◐ |
| Reachability-gated vulns — is the CVE actually called? (SCIP call-graph) | ✅ | ✗ | ✅ | ✗ |
| Whole-world behaviour-delta between snapshots — capability drift, blast-radius (PageRank), fingerprint drift, tripwires | ✅ | NA | NA | NA |
| Advisories + world-snapshots in a time-travel + CDC Iceberg warehouse, queryable by other services | ✅ | NA | NA | NA |
Embeddable leaf crate — drop the gate (core::Verdict) inside another Rust app |
✅ | ◐ | ✗ | ✗ |
| Mature curated advisory DB + breadth of ecosystem coverage | ◐ | ✅ | ✅ | ✅ |
Rows marked NA: the rival has no such category — not a missing feature, a missing concept.
What it does
- Engine A —
scan(the verdict). Multi-ecosystem CVE / license / provenance →core::Verdict(Pass / Warn / Block), cached by(blob_sha256, policy_version, advisory_db_rev), with KEV / EPSS / VEX exploit-intelligence gating. Lean leaf — holger's promotion gate consumes it directly. - Engine B —
scip(the world-delta). A realWorldSnapshotof the resolved dep-graph + SCIP call-graph;diff()→BehaviorDeltafeeds reachability-gated vulns, capability-surface drift, blast-radius (PageRank) and fingerprint-drift tripwires. Heavy (128 GB–1 TB RAM); off by default. - Warehouse seam (
warehousefeature). Opens the shared skade / Iceberg catalog directly — OWNscve_advisories/world_snapshots/behavior_deltas/tripwire_events, READs nornir'ssbom_components, with CDC over skade'sread_delta. - Leaf by design. holger and nornir both depend on modgunn; modgunn never depends on nornir — that is the cycle it exists to break.
Quickstart
cargo build # Engine A — the artifact security verdict (lean leaf)
cargo build --features scip # + Engine B — whole-world behaviour-delta (heavy)
cargo test # Engine A (13 tests) + Engine B (16 tests)
Benchmarks
Numbers pending — no harness recorded yet. modgunn does not yet ship a
nornir bench run modgunnharness (bench/examples/nornir-bench.rs), and no results are recorded in this workspace's warehouse (nornir bench history-show modgunn→ no bench runs recorded). The natural metrics — Engine A verdict throughput (artifacts/s, cache hit vs cold) and Engine Bdiff()wall-time per snapshot pair — go here once a Bencher harness lands and records them. No figures are quoted until they are measured.