-
Notifications
You must be signed in to change notification settings - Fork 86
/
Copy pathCargo.toml
134 lines (112 loc) · 4.29 KB
/
Cargo.toml
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
[package]
name = "clash_lib"
repository = { workspace = true }
version = { workspace = true }
edition = { workspace = true }
[features]
default = ["shadowsocks"]
tracing = []
bench = ["criterion"]
onion = ["arti-client/onion-service-client"]
[dependencies]
tokio = { version = "1", features = ["full"] }
tokio-util = { version = "0.7", features = ["net", "codec", "io", "compat"] }
thiserror = "1.0"
async-trait = "0.1"
anyhow = "1"
futures = "0.3"
bytes = "1.6"
async-recursion = "1"
ipnet = "2.9"
url = "2.5"
regex = "1"
byteorder = "1.5"
lru_time_cache = "0.11"
hyper = { version = "0.14.28", features = ["http1","http2","client", "server", "tcp"] }
http = { version = "1.1" }
httparse = "1.8.0"
h2 = "0.4.5"
prost = "0.12"
tower = { version = "0.4", features = ["util"] }
libc = "0.2"
foreign-types-shared = "0.3.1"
network-interface = "2.0.0"
base64 = "0.22"
uuid = { version = "1.8.0", features = ["v4", "fast-rng", "macro-diagnostics", "serde"] }
ip_network_table-deps-treebitmap = "0.5.0"
once_cell = "1.18.0"
# opentelemetry
opentelemetry = "0.22"
opentelemetry_sdk = { version = "0.22", features = ["rt-tokio"] }
tracing-opentelemetry = "0.23"
opentelemetry-jaeger-propagator = "0.1.0"
opentelemetry-jaeger = { version = "0.22", features = ["collector_client", "hyper_collector_client", "rt-tokio"] }
opentelemetry-otlp = { version = "0.15.0", features = ["grpc-tonic"] }
crc32fast = "1.4.2"
brotli = "6.0.0"
hmac = "0.12.1"
sha1 = "0.10"
sha2 = "0.10.8"
md-5 = "0.10"
chacha20poly1305 = "0.10"
aead = { version = "0.5.2", features = ["std"] }
aes = "0.8.4"
aes-gcm = "0.10"
cfb-mode = "0.8.2"
const-fnv1a-hash = "1"
filetime = "0.2"
axum = { version = "0.7", features = ["ws"] }
tower-http = { version = "0.5.2", features = ["fs", "trace", "cors"] }
chrono = { version = "0.4.38", features = ["serde"] }
tun = { git = "https://github.com/Watfaq/rust-tun.git", rev = "8f7568190f1200d3e272ca534baf8d1578147e18", features = ["async"] }
netstack-lwip = { git = "https://github.com/Watfaq/netstack-lwip.git", rev = "2817bf82740e04bbee6b7bf1165f55657a6ed163" }
boringtun = { version = "0.6.0", git = "https://github.com/cloudflare/boringtun.git", rev = "f672bb6c1e1e371240a8d151f15854687eb740bb" }
smoltcp = { version = "0.11", default-features = false, features = ["std", "log", "medium-ip", "proto-ipv4", "proto-ipv6", "socket-udp", "socket-tcp"] }
tokio-rustls = "0.24"
hyper-rustls = { version = "0.24", features = ["http1", "http2"] }
serde = { version = "1.0", features=["derive"] }
serde_yaml = "0.9"
serde_json = "1.0"
erased-serde = "0.4.5"
hickory-client = "0.24"
hickory-resolver = "0.24"
hickory-server = { version = "0.24", features = ["dns-over-rustls", "dns-over-https-rustls"] }
hickory-proto = { version = "0.24", features = ["dns-over-rustls", "dns-over-https-rustls"]}
# DoH
# ideally we should make a CryptoProvider with boringssl and get rid of rings
rustls = { version = "0.21", features=["dangerous_configuration", "quic"] }
rustls-pemfile = "1.0.4"
webpki-roots = "0.25"
dhcproto = "0.11"
ring-compat = { version = "0.8", features = ["aead"] }
rand = "0.8"
socket2 = { version = "0.5", features = ["all"] }
tokio-tungstenite = "0.21.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing-oslog = { branch = "main", git = "https://github.com/Absolucy/tracing-oslog.git" }
tracing-appender = "0.2.3"
shadowsocks = { version = "1.18.2", optional = true, features=["aead-cipher-2022"] }
maxminddb = "0.24.0"
public-suffix = "0.1.0"
murmur3 = "0.5.2"
arti-client = { version = "0.18.0", default-features = false, features = ["tokio", "rustls", "compression", "static-sqlite"] }
tor-rtcompat = { version = "0.18.0" }
# tuic
tuic = { rev = "82fab62", git = "https://github.com/Itsusinn/tuic.git" }
tuic-quinn = { rev = "82fab62", git = "https://github.com/Itsusinn/tuic.git" }
quinn = { version = "0.10", default-features = false, features = ["futures-io", "runtime-tokio", "tls-rustls"] }
register-count = "0.1.0"
console-subscriber = { version = "0.2.0" }
tracing-timing = { version = "0.6.0" }
criterion = { version = "0.5", features = ["html_reports", "async_tokio"], optional = true }
[dev-dependencies]
tempfile = "3.10"
ctor = "0.2"
mockall = "0.12.1"
tokio-test = "0.4.4"
axum-macros = "0.4.0"
bollard = "0.16"
serial_test = "3.1.1"
[target.'cfg(macos)'.dependencies]
security-framework = "2.11.0"