kache 0.26.0

Zero-copy, content-addressed build cache for Rust, C/C++ and more, with S3 and shared-filesystem remotes.
[graph]
# Check the full target graph (no target filtering).
all-features = false

[advisories]
db-urls = ["https://github.com/rustsec/advisory-db"]
# Fail the build on any active advisory or yanked dep. Use `ignore` to
# pin specific advisory IDs after a documented decision.
yanked = "deny"
ignore = [
  # RUSTSEC-2023-0071 — rsa 0.9.x Marvin timing sidechannel (medium 5.9).
  # Transitive via kunobi-auth (ssh-key, openidconnect). No fixed `rsa`
  # release exists ("Solution: No fixed
  # upgrade is available!"). Re-evaluate when rsa >= 0.10 ships a
  # constant-time implementation. NOTE: only reachable through
  # `kache-service`, so cargo-deny must be run per workspace member (a
  # root-only invocation graphs the `kache` bin alone and misses it).
  "RUSTSEC-2023-0071",
]

[bans]
# Multiple versions of the same crate inflate binary size and signal
# upgrade churn. Warn (not deny) — perfect uniqueness is impractical in a
# graph this size (aws-sdk + kube pull wide trees).
multiple-versions = "warn"
wildcards = "deny"
# kache-service's path dep (kache-core) and first-party git deps
# (kunobi-auth, kunobi-ha) carry no version req, which cargo-deny counts
# as a wildcard. Permit wildcards for path/git deps of unpublished crates
# only; registry wildcards stay denied.
allow-wildcard-paths = true
deny = []
skip = []
skip-tree = []

[licenses]
# Permissive licenses we're happy to ship under Apache-2.0.
allow = [
    "Apache-2.0",
    "Apache-2.0 WITH LLVM-exception",
    "MIT",
    "MIT-0",
    "BSD-2-Clause",
    "BSD-3-Clause",
    "ISC",
    "Zlib",
    "Unicode-3.0",
    "Unicode-DFS-2016",
    "CC0-1.0",
    "MPL-2.0",
    "NCSA",                 # libfuzzer-sys
    "Unlicense",
    # kache's larger tree pulls these permissive licenses that the kunobi
    # repos' smaller graphs never reach:
    "0BSD",                # doctest-file, recvmsg (via interprocess)
    "CDLA-Permissive-2.0", # webpki-root-certs (via reqwest -> rustls-platform-verifier)
]
confidence-threshold = 0.93
# No exceptions. The planner used to embed surrealdb, whose crates ship under
# the Business Source License rather than an OSI-permissive one and needed a
# per-crate BUSL-1.1 carve-out here. Moving the planner to SQLite took the
# whole tree back to the permissive list above; keep it that way.
exceptions = []

[sources]
unknown-registry = "deny"
unknown-git = "deny"
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
# First-party dependencies.
allow-git = [
    "https://github.com/kunobi-ninja/kunobi-ha.git",
]