[package] name = "talpid-wireguard" description = "Library for creating various WireGuard tunnels" authors.workspace = true repository.workspace = true license.workspace = true edition.workspace = true rust-version.workspace = true [lints] workspace = true [features] boringtun = ["dep:boringtun", "dep:tun07", "talpid-tunnel/boringtun"] multihop-pcap = ["boringtun/pcap"] [dependencies] async-trait = "0.1" thiserror = { workspace = true } futures = { workspace = true } hex = "0.4" ipnetwork = { workspace = true } once_cell = { workspace = true } log = { workspace = true } parking_lot = "0.12.0" talpid-routing = { path = "../talpid-routing" } talpid-types = { path = "../talpid-types" } talpid-tunnel-config-client = { path = "../talpid-tunnel-config-client" } talpid-tunnel = { path = "../talpid-tunnel" } zeroize = "1" chrono = { workspace = true, features = ["clock"] } tokio = { workspace = true, features = ["process", "rt-multi-thread", "fs"] } tunnel-obfuscation = { path = "../tunnel-obfuscation" } rand = { workspace = true } surge-ping = "0.8.0" wireguard-go-rs = { path = "../wireguard-go-rs" } tun07 = { package = "tun", version = "0.7.11", features = [ "async", ], optional = true } byteorder = "1" internet-checksum = "0.2" socket2 = { workspace = true, features = ["all"] } tokio-stream = { version = "0.1", features = ["io-util"] } [dependencies.boringtun] optional = true features = ["device", "tun"] git = "https://github.com/mullvad/gotatun" rev = "d8ddd4232c9636aa98ab4bd14093e256f7d09abb" [target.'cfg(unix)'.dependencies] nix = { workspace = true, features = ["fs"] } libc = "0.2.150" [target.'cfg(any(target_os = "linux", target_os = "macos"))'.dependencies] talpid-net = { path = "../talpid-net" } [target.'cfg(target_os = "linux")'.dependencies] rtnetlink = { workspace = true } netlink-packet-core = { workspace = true } netlink-packet-route = { workspace = true } netlink-proto = { workspace = true } talpid-dbus = { path = "../talpid-dbus" } [target.'cfg(windows)'.dependencies] bitflags = "1.2" talpid-windows = { path = "../talpid-windows" } widestring = { workspace = true } rand_chacha = "0.3.1" # TODO: Figure out which features are needed and which are not [target.'cfg(windows)'.dependencies.windows-sys] workspace = true features = [ "Win32_Foundation", "Win32_Globalization", "Win32_Security", "Win32_System_Com", "Win32_System_Diagnostics_ToolHelp", "Win32_System_Ioctl", "Win32_System_IO", "Win32_System_LibraryLoader", "Win32_System_ProcessStatus", "Win32_System_Registry", "Win32_System_Services", "Win32_System_SystemServices", "Win32_System_Threading", "Win32_System_WindowsProgramming", "Win32_Networking_WinSock", "Win32_NetworkManagement_IpHelper", "Win32_NetworkManagement_Ndis", "Win32_UI_Shell", "Win32_UI_WindowsAndMessaging", ] [dev-dependencies] proptest = { workspace = true } tokio = { workspace = true, features = ["test-util"] } insta = { workspace = true }