pktkit 0.1.2

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
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
rust-version = "1.75"
name = "pktkit"
version = "0.1.2"
authors = ["Karpeles Lab Inc."]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "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."
homepage = "https://github.com/KarpelesLab/pktkit-rs"
documentation = "https://docs.rs/pktkit"
readme = "README.md"
keywords = [
    "networking",
    "packet",
    "tcp",
    "wireguard",
    "tun",
]
categories = [
    "network-programming",
    "virtualization",
]
license = "MIT"
repository = "https://github.com/KarpelesLab/pktkit-rs"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
afxdp = ["dep:libc"]
default = []
dhcp = []
full = [
    "l2adapter",
    "dhcp",
    "qemu",
    "tuntap",
    "afxdp",
    "vtcp",
    "slirp",
    "vclient",
    "nat",
    "wg",
    "ovpn",
]
l2adapter = []
nat = ["vtcp"]
ovpn = [
    "dep:aes",
    "dep:aes-gcm",
    "dep:cbc",
    "dep:hmac",
    "dep:sha1",
    "dep:sha2",
    "dep:rsa",
    "dep:rand_core",
    "dep:getrandom",
    "dep:rustls",
    "dep:rustls-rustcrypto",
    "dep:rustls-pemfile",
]
qemu = []
slirp = ["vtcp"]
tuntap = ["dep:libc"]
vclient = ["vtcp"]
vtcp = []
wg = [
    "dep:curve25519-dalek",
    "dep:chacha20poly1305",
    "dep:blake2",
    "dep:hmac",
    "dep:zeroize",
    "dep:rand_core",
    "dep:getrandom",
]

[lib]
name = "pktkit"
path = "src/lib.rs"

[[test]]
name = "dhcp_over_hub"
path = "tests/dhcp_over_hub.rs"

[[test]]
name = "slirp_accept"
path = "tests/slirp_accept.rs"

[[test]]
name = "slirp_accept6"
path = "tests/slirp_accept6.rs"

[[test]]
name = "vclient_tcp"
path = "tests/vclient_tcp.rs"

[[test]]
name = "wg_cookie"
path = "tests/wg_cookie.rs"

[dependencies.aes]
version = "0.8"
optional = true

[dependencies.aes-gcm]
version = "0.10"
features = [
    "alloc",
    "aes",
]
optional = true
default-features = false

[dependencies.blake2]
version = "0.10"
optional = true

[dependencies.cbc]
version = "0.1"
features = ["alloc"]
optional = true

[dependencies.chacha20poly1305]
version = "0.10"
features = ["alloc"]
optional = true
default-features = false

[dependencies.curve25519-dalek]
version = "4"
features = [
    "alloc",
    "zeroize",
]
optional = true
default-features = false

[dependencies.getrandom]
version = "0.2"
optional = true

[dependencies.hmac]
version = "0.12"
optional = true

[dependencies.libc]
version = "0.2"
optional = true

[dependencies.rand_core]
version = "0.6"
optional = true

[dependencies.rsa]
version = "0.9"
optional = true
default-features = false

[dependencies.rustls]
version = "0.23"
features = [
    "std",
    "tls12",
]
optional = true
default-features = false

[dependencies.rustls-pemfile]
version = "2"
optional = true

[dependencies.rustls-rustcrypto]
version = "=0.0.2-alpha"
optional = true

[dependencies.sha1]
version = "0.10"
optional = true

[dependencies.sha2]
version = "0.10"
optional = true

[dependencies.zeroize]
version = "1"
features = ["zeroize_derive"]
optional = true
default-features = false

[dev-dependencies]