[package]
description = "An eBPF Program Manager"
name = "bpfman"

documentation.workspace = true
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
version.workspace = true

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

[[bin]]
name = "bpfman"
path = "src/bin/cli/main.rs"

[dependencies]
anyhow = { workspace = true, features = ["std"] }
async-trait = { workspace = true }
aya = { workspace = true }
aya-obj = { workspace = true }
base16ct = { workspace = true, features = ["alloc"] }
base64 = { workspace = true }
bpfman-csi = { workspace = true }
caps = { workspace = true }
chrono = { workspace = true }
clap = { workspace = true, features = [
    "color",
    "derive",
    "help",
    "std",
    "suggestions",
    "usage",
] }
clap_complete = { workspace = true }
clap_mangen = { workspace = true }
comfy-table = { workspace = true, features = ["tty"] }
env_logger = { workspace = true }
flate2 = { workspace = true, features = ["zlib"] }
hex = { workspace = true, features = ["std"] }
lazy_static = { workspace = true }
log = { workspace = true }
netlink-packet-core = { workspace = true }
netlink-packet-route = { workspace = true }
netlink-sys = { workspace = true }
nix = { workspace = true, features = [
    "fs",
    "mount",
    "net",
    "resource",
    "sched",
    "socket",
    "user",
] }
object = { workspace = true, features = ["elf", "read_core"] }
oci-client = { workspace = true, default-features = false, features = [
    "native-tls",
    "trust-dns",
] }
rand = { workspace = true, features = ["thread_rng"] }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, features = ["std"] }
sha2 = { workspace = true }
sigstore = { workspace = true, features = [
    "cached-client",
    "cosign",
    "native-tls",
    "sigstore-trust-root",
] }
sled = { workspace = true }
systemd-journal-logger = { workspace = true }
tar = { workspace = true }
tempfile = { workspace = true }
thiserror = { workspace = true }
tokio = { workspace = true, features = ["full", "signal"] }
tokio-stream = { workspace = true, features = ["net"] }
toml = { workspace = true, features = ["parse"] }
tonic = { workspace = true, features = ["transport"] }
tower = { workspace = true }
url = { workspace = true }

[dev-dependencies]
assert_matches = { workspace = true }

[lints.rust]
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(test)'] }
