[package] name = "mullvad-daemon" description = "Mullvad VPN daemon. Runs and controls the VPN tunnels" authors.workspace = true repository.workspace = true license.workspace = true edition.workspace = true rust-version.workspace = true [lints] workspace = true [features] # Allow the API server to use to be configured api-override = ["mullvad-api/api-override"] boringtun = ["talpid-core/boringtun"] staggered-obfuscation = ["mullvad-relay-selector/staggered-obfuscation"] multihop-pcap = ["talpid-core/multihop-pcap"] [dependencies] anyhow = { workspace = true } chrono = { workspace = true } thiserror = { workspace = true } either = "1.11" fern = { workspace = true, features = ["colored"] } futures = { workspace = true } libc = "0.2" log = { workspace = true } regex = "1.0" serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true, features = ["std"] } tokio = { workspace = true, features = ["fs", "io-util", "rt-multi-thread", "sync", "time"] } tokio-stream = { version = "0.1", features = ["sync"]} socket2 = { workspace = true } ipnetwork = { workspace = true } rand = { workspace = true } mullvad-relay-selector = { path = "../mullvad-relay-selector" } mullvad-types = { path = "../mullvad-types" } mullvad-api = { path = "../mullvad-api" } mullvad-encrypted-dns-proxy = { path = "../mullvad-encrypted-dns-proxy" } mullvad-fs = { path = "../mullvad-fs" } mullvad-paths = { path = "../mullvad-paths" } mullvad-version = { path = "../mullvad-version" } mullvad-update = { path = "../mullvad-update", features = ["client"] } mullvad-leak-checker = { path = "../mullvad-leak-checker", default-features = false } talpid-core = { path = "../talpid-core" } talpid-future = { path = "../talpid-future" } talpid-platform-metadata = { path = "../talpid-platform-metadata" } talpid-time = { path = "../talpid-time" } talpid-types = { path = "../talpid-types" } talpid-routing = { path = "../talpid-routing" } clap = { workspace = true } log-panics = "2.0.0" mullvad-management-interface = { path = "../mullvad-management-interface" } [dev-dependencies] insta = { workspace = true, features = ["json"] } talpid-time = { path = "../talpid-time", features = ["test"] } tokio = { workspace = true, features = ["test-util"] } [target.'cfg(target_os="android")'.dependencies] async-trait = "0.1" android_logger = "0.8" hickory-resolver = { workspace = true } [target.'cfg(unix)'.dependencies] nix = { workspace = true, features = ["signal", "user"] } simple-signal = "1.1" [target.'cfg(target_os="linux")'.dependencies] talpid-dbus = { path = "../talpid-dbus" } [target.'cfg(target_os="macos")'.dependencies] objc2-foundation = { version = "0.3.1", features = ["NSProcessInfo", "NSString", "NSURL"] } objc2-service-management = { version = "0.3.1", features = [ "SMAppService", "objc2" ] } notify = "8.0.0" talpid-macos = { path = "../talpid-macos" } [target.'cfg(windows)'.dependencies] ctrlc = "3.0" windows-service = "0.6.0" winapi = { version = "0.3", features = ["winnt", "excpt", "winerror"] } dirs = { workspace = true } talpid-windows = { path = "../talpid-windows" } [target.'cfg(windows)'.dependencies.windows-sys] workspace = true features = [ "Win32_Foundation", "Win32_Security", "Win32_Security_Authorization", "Win32_Security_Authentication_Identity", "Win32_System_Diagnostics_Debug", "Win32_System_Kernel", "Win32_System_Memory", "Win32_System_Threading", ] [target.'cfg(windows)'.build-dependencies] winres = "0.1" mullvad-version = { path = "../mullvad-version" } [target.'cfg(windows)'.build-dependencies.windows-sys] workspace = true features = ["Win32_System_SystemServices"] [package.metadata.winres] ProductName = "Mullvad VPN" CompanyName = "Mullvad VPN AB" LegalCopyright = "(c) 2025 Mullvad VPN AB" InternalName = "mullvad-daemon" OriginalFilename = "mullvad-daemon.exe"