[package] name = "talpid-core" description = "Privacy preserving and secure VPN client library" authors.workspace = true repository.workspace = true license.workspace = true edition.workspace = true rust-version.workspace = true [lints] workspace = true [features] boringtun = ["talpid-wireguard/boringtun"] multihop-pcap = ["talpid-wireguard/multihop-pcap"] [dependencies] anyhow = { workspace = true } chrono = { workspace = true, features = ["clock"] } thiserror = { workspace = true } futures = { workspace = true } ipnetwork = { workspace = true } libc = "0.2" log = { workspace = true } parking_lot = "0.12.0" rand = { workspace = true } talpid-routing = { path = "../talpid-routing" } talpid-tunnel = { path = "../talpid-tunnel" } talpid-tunnel-config-client = { path = "../talpid-tunnel-config-client" } talpid-types = { path = "../talpid-types" } talpid-wireguard = { path = "../talpid-wireguard" } tokio = { workspace = true, features = ["process", "rt-multi-thread", "fs"] } either = { version = "1.15.0", features = ["serde"] } [target.'cfg(not(target_os="android"))'.dependencies] talpid-openvpn = { path = "../talpid-openvpn" } triggered = "0.1.1" [target.'cfg(target_os = "android")'.dependencies] jnix = { version = "0.5.1", features = ["derive"] } [target.'cfg(target_os = "linux")'.dependencies] nix = { workspace = true, features = ["mount"] } inotify = "0.10" resolv-conf = "0.7" nftnl = { version = "0.8.0", features = ["nftnl-1-1-0"] } mnl = { version = "0.2.3", features = ["mnl-1-0-4"] } which = { version = "4.0", default-features = false } talpid-dbus = { path = "../talpid-dbus" } [target.'cfg(target_os = "macos")'.dependencies] async-trait = "0.1" pfctl = "0.7.0" system-configuration = "0.5.1" hickory-proto = { workspace = true } hickory-server = { workspace = true, features = ["resolver"] } talpid-platform-metadata = { path = "../talpid-platform-metadata" } pcap = { version = "2.1", features = ["capture-stream"] } pnet_packet = { workspace = true } tun = { workspace = true, features = ["async"] } nix = { workspace = true, features = ["socket", "signal", "user"] } serde = { workspace = true, features = ["derive"] } serde_json = { workspace = true } socket2 = { workspace = true } talpid-macos = { path = "../talpid-macos" } talpid-net = { path = "../talpid-net" } [target.'cfg(windows)'.dependencies] bitflags = "2.6" csv = "1.3.1" widestring = { workspace = true } winreg = { workspace = true, features = ["transactions"] } memoffset = "0.6" once_cell = { workspace = true } windows-service = "0.6.0" serde = { workspace = true, features = ["derive"] } talpid-windows = { path = "../talpid-windows" } wmi = "0.14.0" windows-core = "0.58.0" windows = "0.58.0" [target.'cfg(windows)'.dependencies.windows-sys] workspace = true features = [ "Win32_Foundation", "Win32_Globalization", "Win32_Security", "Win32_Storage_FileSystem", "Win32_System_Diagnostics_ToolHelp", "Win32_System_Ioctl", "Win32_System_IO", "Win32_System_LibraryLoader", "Win32_System_ProcessStatus", "Win32_System_Registry", "Win32_System_Rpc", "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", "Win32_System_SystemInformation", ] [target.'cfg(target_os = "macos")'.dev-dependencies] typed-builder = "0.20.0" [build-dependencies] tonic-build = { workspace = true, default-features = false, features = ["transport", "prost"] } [dev-dependencies] test-log = "0.2.17" tokio = { workspace = true, features = ["io-util", "test-util", "time"] } insta = { workspace = true }