Ctrl K
ComunidadGuías…

deny.toml

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Configuration for cargo-deny
# See: https://embarkstudios.github.io/cargo-deny/

[graph]
targets = [
    { triple = "x86_64-unknown-linux-gnu" },
    { triple = "x86_64-unknown-linux-musl" },
    { triple = "x86_64-apple-darwin" },
    { triple = "aarch64-apple-darwin" },
    { triple = "x86_64-pc-windows-msvc" },
]

[advisories]
db-path = "~/.cargo/advisory-db"
db-urls = ["https://github.com/rustsec/advisory-db"]
unmaintained = "workspace"
yanked = "deny"
ignore = [
    # quick-xml 0.37.5 XML-parsing DoS, reached only through
    # `little_exif 0.6.23` (an EXIF/XMP dependency of elide-image, new with
    # the metadata modality). It pins `^0.37`, the fix landed in the
    # semver-incompatible 0.41, and 0.6.23 is the latest release, so there is
    # no in-range update: unresolvable here until upstream `little_exif`
    # bumps. Our own quick-xml is 0.42, which is patched.
    #
    # 0194 is reachable, and the ignore is a deferral, not a dismissal.
    # `little_exif`'s `remove_exif_from_xmp` calls `attributes()` with the
    # default duplicate-name check, reached from its PNG EXIF-clear path, so
    # a crafted image spends O(N^2) on one start tag's attributes. The
    # advisory measures ~6s at 80k attributes and ~10min at 800k, and it is
    # pure computation: a caller-side I/O timeout cannot interrupt it.
    #
    # Bumping our own `quick-xml` does not help. Cargo would resolve two
    # copies and the 0.37 one reached through `little_exif` stays live; only
    # a `little_exif` release built against >= 0.41 removes it. Filed
    # upstream as TechnikTobi/little_exif#104, with the migration mapped out.
    #
    # Until then the mitigation is the caller's. This crate is a stateless
    # library with no request boundary of its own, so it cannot size-limit
    # what it is handed without inventing a policy for every embedder; a
    # host taking untrusted uploads should bound document size before
    # calling `analyze`. See `Document`'s own docs, and #444.
    "RUSTSEC-2026-0194",
    # 0195 does not apply: it is an `NsReader` namespace-resolution bug and
    # `little_exif` uses the plain `Reader`, as the upstream issue confirms.
    "RUSTSEC-2026-0195",
]

[licenses]
confidence-threshold = 0.8
private = { ignore = false, registries = [] }
unused-allowed-license = "warn"

allow = [
    "0BSD",
    "MIT",
    "MIT-0",
    "Apache-2.0",
    "Apache-2.0 WITH LLVM-exception",
    "BSD-2-Clause",
    "BSD-3-Clause",
    "ISC",
    "MPL-2.0",
    "Unicode-3.0",
    "Unlicense",
    "BSL-1.0",
    "CC0-1.0",
    "Zlib",
]

exceptions = [
    # libmp3lame Rust bindings used by the MP3 codec for the
    # decode → mutate → re-encode redaction round-trip. LGPL-3.0
    # imposes redistribution constraints: see
    # https://www.gnu.org/licenses/lgpl-3.0.html. Static linking
    # (the default for `mp3lame-sys`) obliges us to either ship
    # the LGPL source alongside the binary or provide a means for
    # end users to relink against a modified libmp3lame.
    { name = "mp3lame-sys", allow = ["LGPL-3.0"] },
    { name = "mp3lame-encoder", allow = ["LGPL-3.0"] },

    # Mozilla's root CA certificate bundle, reached only with the
    # `deepgram` feature on: deepgram -> tokio-tungstenite ->
    # webpki-roots, for TLS trust anchors when transcribing
    # through Deepgram's hosted API.
    #
    # CDLA-Permissive-2.0 is the Linux Foundation's *data* licence,
    # which is what this crate ships: the certificate bundle is
    # data, not code. It adds no copyleft obligation to software
    # that uses the data, requires no attribution in binaries, and
    # disclaims warranty. Both major versions are present because
    # 0.26 re-exports 1.0.
    #
    # Scoped as an exception rather than an allowed licence so the
    # grant stays limited to this bundle. Nothing else in the graph
    # may ship under it without another decision here.
    { name = "webpki-roots", allow = ["CDLA-Permissive-2.0"] },
]

[bans]
multiple-versions = "warn"
wildcards = "deny"
highlight = "all"

allow = []

deny = [
    { name = "openssl-sys", version = "*" },
    { name = "openssl", version = "*" },
]

skip = []
skip-tree = []
# Self-referential dev-dependency for test feature activation is not a real wildcard.
allow-wildcard-paths = true

[sources]
unknown-registry = "deny"
unknown-git = "deny"
allow-registry = ["https://github.com/rust-lang/crates.io-index"]
# elide is consumed straight from the in-house GitHub mirror until its
# crates publish to crates.io. Scoped to that repo on purpose; the
# adapters are workspace members now, not a git source.
allow-git = ["https://github.com/nvisycom/elide"]