pktkit 0.1.3

Zero-copy L2/L3 packet handling toolkit. Frames, packets, hubs, adapters, NAT, virtual TCP/IP, WireGuard, OpenVPN, QEMU networking, TUN/TAP, AF_XDP — all gated behind opt-in cargo features.
Documentation
# cargo-deny configuration.
#
# The crate's dependency policy is part of what it offers: std, `libc` for OS
# FFI, and `purecrypto` for every piece of cryptography. That is the whole
# tree -- two direct dependencies, no transitive ones. This file is where the
# policy is enforced instead of just documented.

[graph]
all-features = true

[advisories]
# Any unpatched advisory in the tree fails the build.
yanked = "deny"

# No advisory exceptions. The five findings currently open all arrive through
# `rustls-rustcrypto =0.0.2-alpha` (an outdated `rustls-webpki`, the `rsa`
# Marvin timing sidechannel, and unmaintained `paste`), and the fix is to drop
# that dependency rather than to annotate around it. This job stays red until
# then, on purpose.


[licenses]
# Permissive licences only. Anything copyleft would change what a dependent
# takes on by using this crate, so it needs a deliberate decision, not a
# silent transitive addition.
# Only what the tree actually uses, so that a new licence has to be added
# here deliberately rather than slipping in under a broad allowance.
allow = ["MIT", "Apache-2.0"]
confidence-threshold = 0.9

[bans]
multiple-versions = "warn"
wildcards = "deny"
# Crypto that vendors C or assembly, or runs a build script. All cryptography
# comes from purecrypto; if one of these appears, something pulled in a second
# implementation behind our back.
deny = [
    { crate = "ring", reason = "vendors C and assembly; pktkit uses purecrypto" },
    { crate = "aws-lc-rs", reason = "vendors C; pktkit uses purecrypto" },
    { crate = "openssl-sys", reason = "pktkit links no native TLS" },
    { crate = "rustls", reason = "the OpenVPN control channel uses purecrypto's TLS" },
]

[sources]
unknown-registry = "deny"
unknown-git = "deny"