rustberg 0.0.4

A production-grade, cross-platform, single-binary Apache Iceberg REST Catalog
Documentation
# cargo-deny configuration
# https://embarkstudios.github.io/cargo-deny/

# ===========================================================================
# Advisories - Security vulnerability database checking
# ===========================================================================
[advisories]
db-path = "~/.cargo/advisory-db"
db-urls = ["https://github.com/rustsec/advisory-db"]

# Ignore specific advisories (add with justification)
ignore = [
    # fxhash - unmaintained, transitive dep from sled
    "RUSTSEC-2025-0057",
    # instant - unmaintained, transitive dep from sled and azure_* crates
    "RUSTSEC-2024-0384",
    # paste - unmaintained, transitive dep from parquet, foyer-storage, azure_core
    "RUSTSEC-2024-0436",
    # rustls-pemfile - unmaintained, transitive dep from object_store, bollard
    "RUSTSEC-2025-0134",
    # bincode - unmaintained, transitive dep from madsim (foyer/slatedb)
    "RUSTSEC-2025-0141",
    # tokio-tar - dev dependency only (testcontainers), no fix available
    "RUSTSEC-2025-0111",
]

# ===========================================================================
# Licenses - Allowed license checking
# ===========================================================================
[licenses]
confidence-threshold = 0.8

# List of allowed licenses
allow = [
    "MIT",
    "Apache-2.0",
    "Apache-2.0 WITH LLVM-exception",
    "BSD-2-Clause",
    "BSD-3-Clause",
    "ISC",
    "OpenSSL",                          # aws-lc-sys
    "Zlib",
    "0BSD",
    "CC0-1.0",
    "Unicode-DFS-2016",
    "Unicode-3.0",                      # icu4x crates (yoke, zerofrom, zerovec, etc.)
    "CDLA-Permissive-2.0",              # webpki-roots
    "BSL-1.0",
]

# Crates with clarifications
[[licenses.clarify]]
name = "ring"
expression = "MIT AND ISC AND OpenSSL"
license-files = [
    { path = "LICENSE", hash = 0xbd0eed23 },
]

[[licenses.clarify]]
name = "webpki"
expression = "ISC"
license-files = [
    { path = "LICENSE", hash = 0x001c7e6c },
]

# ===========================================================================
# Bans - Dependency bans and duplicates
# ===========================================================================
[bans]
multiple-versions = "warn"
wildcards = "allow"  # Cargo doesn't support workspace inheritance with wildcards well
highlight = "all"

# Deny specific problematic crates
deny = [
    # Example: { name = "openssl" }  # Prefer rustls
]

# Allow specific duplicates (with justification)
skip = [
    # Common crates that often have multiple versions
    # { name = "syn" },
]

# Skip tree for specific crates' dependencies
skip-tree = [
    # { name = "some-crate", version = "*" },
]

# ===========================================================================
# Sources - Allowed registry sources
# ===========================================================================
[sources]
unknown-registry = "deny"
unknown-git = "deny"

# Allow crates.io (default)
allow-registry = ["https://github.com/rust-lang/crates.io-index"]

# Allow specific git repositories (if needed)
allow-git = []

# ===========================================================================
# Output - How results are presented
# ===========================================================================
[output]
feature-depth = 1