{"adoption": {"forks": 129, "observed_at": "2026-08-28T04:06:44.118283+00:00", "stars": 2407}, "canonical_url": "https://ross.abutalabs.com/products/cargo-deny", "card": {"archived": false, "artifact_type": "cli-tool", "description": "❌ Cargo plugin for linting your dependencies 🦀", "domain": ["developer-tools", "security", "version-control", "programming-languages"], "enriched": true, "function": ["linter", "security", "dependency-audit", "cli", "ci-cd"], "health_score": 100, "homepage": "http://embark.rs", "language": "Rust", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["EmbarkStudios/cargo-deny"], "name": "EmbarkStudios/cargo-deny", "platform": ["rust", "cli", "windows"], "pushed_at": "2026-08-26T10:11:40+00:00", "repo": "EmbarkStudios/cargo-deny", "stars": 2407, "tags": ["cargo-subcommand", "license-compliance", "spdx", "rustsec-advisories", "dependency-management", "supply-chain-security", "linux", "macos", "docker"], "topics": ["cargo", "rust", "crates", "advisories", "bans", "licenses", "cargo-subcommand"], "urls": [], "use_cases": ["enforce license compliance across all cargo dependencies", "check rust crates for known security advisories in CI", "ban or duplicate-detect specific crates in a rust workspace", "lint large dependency graphs in a rust project", "run dependency checks as a github action", "generate a deny.toml policy for crate sources and versions"], "what_it_is": "cargo-deny is a Cargo plugin (cargo subcommand) for linting Rust dependency graphs. It checks crate licenses against allow/deny lists, bans or duplicates dependencies, and flags crates with known security advisories.", "when_to_avoid": ["you need runtime application security testing rather than dependency linting", "your project is not Rust/Cargo based", "you need legal advice on license compliance rather than automated checks"], "when_to_choose": ["you maintain a Rust project or workspace and want automated dependency policy enforcement", "you need license auditing (SPDX) and RustSec advisory checks in CI", "you want to ban certain crates, sources, or duplicate versions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cargo-deny", "repo": "EmbarkStudios/cargo-deny", "role": "main", "score": 97}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:44.118283+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:34:04.561417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "816f32904917a4cafe06ae79472f8e54c0eecdeac83854792f6da7d5a98f5a84", "fetched_at": "2026-08-28T04:06:44.118283+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EmbarkStudios/cargo-deny"}, {"content_hash": "3a8ea0dac0f00c5ffed65170f9761c5f0304dd94e1f4b7e60ab2ef10f05d00d8", "fetched_at": "2026-08-29T10:14:19.035512+00:00", "kind": "homepage", "missing": false, "url": "http://embark.rs"}, {"content_hash": "5b13cf7f39d7fbc1ff283165297ba41eb432a8de79ad5955f97d15f1646a4b9f", "fetched_at": "2026-08-29T10:14:19.038419+00:00", "kind": "registry_crates", "missing": false, "url": "https://crates.io/api/v1/crates/cargo-deny"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 92}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2669, "days_push": 7, "days_rel": 55, "gap_med": 13, "n_releases_24m": 24}, "score": 97, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}