1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
[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 }
|