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
|
[workspace.package]
authors = ["Mullvad VPN"]
repository = "https://github.com/mullvad/mullvadvpn-app/"
license = "GPL-3.0"
edition = "2024"
rust-version = "1.88.0"
[workspace]
resolver = "2"
members = [
"test-manager",
"test-runner",
"test-rpc",
"socks-server",
"connection-checker",
]
# Keep all lints in sync with `../Cargo.toml`
[workspace.lints.rust]
# Security
non_ascii_idents = "forbid"
# Deny old style Rust
rust_2018_idioms = { level = "deny", priority = -1 }
macro_use_extern_crate = "deny"
absolute_paths_not_starting_with_crate = "deny"
# Easy to read style and opinionated best practices
explicit_outlives_requirements = "warn"
missing_abi = "deny"
unused_lifetimes = "warn"
unused_macro_rules = "warn"
single_use_lifetimes = "warn"
[workspace.lints.clippy]
unused_async = "deny"
implicit_clone = "warn"
[workspace.dependencies]
dirs = "6.0.0"
futures = "0.3"
tokio = { version = "1.44", features = [
"macros",
"rt",
"process",
"time",
"fs",
"io-util",
"rt-multi-thread",
] }
tokio-serial = "5.4.1"
# Serde and related crates
serde = "1.0"
serde_json = "1.0"
tokio-serde = { version = "0.8.0", features = ["json"] }
# Tonic and related crates
tonic = "0.13.1"
tonic-build = { version = "0.13.1", default-features = false }
tower = "0.5.1"
prost = "0.13.3"
prost-types = "0.13.3"
tarpc = { version = "0.30", features = ["tokio1", "serde-transport", "serde1"] }
hyper-util = { version = "0.1.8", features = [
"client",
"client-legacy",
"http2",
] }
# Logging
env_logger = "0.11.7"
thiserror = "2.0"
log = "0.4"
colored = "2.0.0"
# Proxy protocols
shadowsocks = "1.20.3"
shadowsocks-service = "1.20.3"
windows-sys = "0.52.0"
chrono = { version = "0.4.26", default-features = false }
clap = { version = "4.2.7", features = ["cargo", "derive"] }
bytes = "1.3.0"
async-trait = "0.1.58"
socket2 = "0.5.7"
surge-ping = "0.8"
nix = { version = "0.30.1", features = ["ioctl", "socket", "net", "signal"] }
rand = "0.9"
|