[workspace] resolver = "2" members = ["net-guardia", "net-guardia-abi", "macros", "ingress-ebpf", "egress-ebpf", "net-guardia-cli"] default-members = ["net-guardia", "net-guardia-abi", "net-guardia-cli"] [workspace.dependencies] # Local crates net-guardia-abi = { path = "net-guardia-abi" } macros = { path = "macros" } # eBPF - kernel side (pinned: aya-ebpf 0.1.2 was yanked, see aya-rs/aya#1400) aya-ebpf = { version = "=0.1.1", default-features = false } aya-log-ebpf = { version = "=0.1.0", default-features = false } # eBPF - userspace side aya = { version = "0.13.1", default-features = false } aya-log = { version = "0.2.1", default-features = false } network-types = { version = "0.2.0", default-features = false } # XDP xsk-rs = { version = "0.8.0", default-features = false } libxdp-sys = { version = "0.2.4", features = ["use_cc_build", "use_precompiled_bpf"] } # Serialization serde = { version = "1.0.228", features = ["derive"] } serde_json = "1.0.149" serde_yaml_ng = "0.10.0" # Async runtime tokio = { version = "1.50.0", features = ["rt-multi-thread", "macros", "sync", "time", "process", "io-util", "io-std", "fs", "signal"] } tokio-util = { version = "0.7", features = ["io"] } # Web framework actix = "0.13.5" actix-web = "4.13.0" actix-cors = "0.7.1" actix-ws = "0.4.0" actix-multipart = "0.7" actix-files = "0.6" tokio-tungstenite = "0.29.0" zip = "8.6.0" # Logging / tracing tracing = "0.1.44" tracing-appender = "0.2.4" tracing-subscriber = { version = "0.3.23", features = ["env-filter", "registry"] } # ML tract-onnx = "0.22.1" # Utilities parking_lot = "0.12.5" libc = { version = "0.2.183", default-features = false } thiserror = "2.0.18" futures-util = "0.3.32" crossbeam = "0.8.4" # System sysinfo = "0.39.0" maxminddb = "0.28.1" ipnetwork = "0.21.1" lru = "0.18.0" rusqlite = { version = "0.39", features = ["bundled-sqlcipher"] } async-sqlite = { version = "0.5.7", default-features = false, features = ["bundled-sqlcipher"] } argon2 = "0.5" rand = "0.10.1" ed25519-dalek = { version = "2", features = ["std", "rand_core"] } base64 = "0.22" clap = { version = "4", features = ["derive"] } uuid = { version = "1", features = ["v4"] } rust-embed = "8.11.0" mime_guess = "2.0.5" url = "2.5.8" toml = "1.0.7" lettre = { version = "0.11", default-features = false, features = ["builder", "hostname", "smtp-transport", "tokio1-rustls-tls"] } chrono = { version = "0.4", default-features = false, features = ["clock", "std"] } reqwest = { version = "0.13.3", default-features = false, features = ["json", "rustls"] } async-trait = "0.1" dashmap = "6" arc-swap = "1" moka = { version = "0.12", features = ["sync"] } notify = "8.2.0" sha2 = "0.11.0" hmac = "0.13.0" aes-gcm = "0.10" hkdf = "0.13.0" sd-notify = "0.5.0" # Build dependencies cargo_metadata = { version = "0.23.1", default-features = false } which = "8.0.2" dotenvy = "0.15.7" # Proc macro proc-macro2 = "1.0.106" quote = "1.0.45" syn = { version = "2.0.117", features = ["full"] } [profile.dev] panic = "unwind" [profile.release] panic = "unwind" opt-level = 3 lto = "thin" strip = true [profile.release.package.ingress-ebpf] debug = 2 codegen-units = 1 [profile.release.package.egress-ebpf] debug = 2 codegen-units = 1