[package] name = "firezone-bin-shared" version = "0.1.0" edition = { workspace = true } description = "Firezone-specific modules shared between binaries." license = { workspace = true } # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] anyhow = { workspace = true } axum = { workspace = true, features = ["http1", "tokio"] } clap = { workspace = true, features = ["derive", "env"] } firezone-logging = { workspace = true } futures = { workspace = true, features = ["std", "async-await"] } hex-literal = { workspace = true } ip-packet = { workspace = true } ip_network = { workspace = true, features = ["serde"] } socket-factory = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true, features = ["io-util", "net", "rt", "sync"] } tracing = { workspace = true } tun = { workspace = true } [dev-dependencies] tokio = { workspace = true, features = ["macros", "rt-multi-thread"] } [target.'cfg(target_os = "linux")'.dependencies] flume = { workspace = true } libc = { workspace = true } netlink-packet-core = { version = "0.7" } netlink-packet-route = { version = "0.19" } nix = { workspace = true, features = ["socket"] } rtnetlink = { workspace = true } zbus = "4.4" # Can't use `zbus`'s `tokio` feature here, or it will break toast popups all the way over in `gui-client`. [target.'cfg(windows)'.dependencies] known-folders = { workspace = true } ring = "0.17" uuid = { workspace = true, features = ["v4"] } windows-core = "0.58.0" windows-implement = "0.58.0" wintun = "0.5.0" winreg = { workspace = true } [target.'cfg(windows)'.dependencies.windows] workspace = true features = [ # For implementing COM interfaces "implement", "Win32_Foundation", # For listening for network change events "Win32_Networking_NetworkListManager", "Win32_NetworkManagement_IpHelper", "Win32_NetworkManagement_Ndis", "Win32_Networking_WinSock", "Win32_Security", # COM is needed to listen for network change events "Win32_System_Com", # Needed to listen for system DNS changes "Win32_System_Registry", "Win32_System_Threading", ] [target.'cfg(windows)'.dev-dependencies] ip-packet = { workspace = true } tokio = { workspace = true, features = ["net", "time"] } [lints] workspace = true [[bench]] name = "tunnel" harness = false