-
Notifications
You must be signed in to change notification settings - Fork 37
/
Cargo.toml
108 lines (94 loc) · 3.43 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
[package]
name = "hudsucker"
version = "0.23.0"
edition = "2021"
rust-version = "1.75.0"
description = "MITM HTTP/S proxy"
documentation = "https://docs.rs/hudsucker"
readme = "README.md"
homepage = "https://github.com/omjadas/hudsucker"
repository = "https://github.com/omjadas/hudsucker"
license = "MIT OR Apache-2.0"
keywords = ["http", "proxy"]
categories = ["network-programming"]
exclude = [".github/"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
async-compression = { version = "0.4.0", features = ["tokio", "brotli", "gzip", "zlib", "zstd"], optional = true }
bstr = "1.0.0"
futures = "0.3.11"
http = "1.1.0"
http-body-util = "0.1.0"
hyper = "1.1.0"
hyper-rustls = { version = "0.27.0", default-features = false, features = ["http1", "logging", "tls12", "webpki-tokio"], optional = true }
hyper-tls = { version = "0.6.0", optional = true }
hyper-tungstenite = "0.15.0"
hyper-util = { version="0.1.3", features = ["client-legacy", "server", "http1"] }
moka = { version = "0.12.0", features = ["future"], optional = true }
openssl = { version = "0.10.46", optional = true }
rand = { version = "0.8.0", optional = true }
rcgen = { version = "0.13.0", features = ["x509-parser"], optional = true }
thiserror = "2.0.0"
time = { version = "0.3.35", optional = true }
tokio = { version = "1.24.2", features = ["macros", "rt"] }
tokio-graceful = "0.2.0"
tokio-native-tls = { version = "0.3.1", optional = true }
tokio-rustls = { version = "0.26.0", features = ["logging", "tls12"] }
tokio-tungstenite = "0.24.0"
tokio-util = { version = "0.7.1", features = ["io"], optional = true }
tracing = { version = "0.1.35", features = ["log"] }
[dev-dependencies]
async-http-proxy = { version = "1.2.5", features = ["runtime-tokio"] }
criterion = { version = "0.5.0", features = ["async_tokio"] }
reqwest = "0.12.0"
rustls-native-certs = "0.8.0"
rustls-pemfile = "2.0.0"
tokio = { version = "1.24.2", features = ["full"] }
tokio-native-tls = "0.3.1"
tracing-subscriber = "0.3.8"
x509-parser = "0.16.0"
[features]
decoder = ["dep:async-compression", "dep:tokio-util", "tokio/io-util"]
default = ["decoder", "rcgen-ca", "rustls-client"]
full = ["decoder", "http2", "native-tls-client", "openssl-ca", "rcgen-ca", "rustls-client"]
http2 = ["hyper-util/http2", "hyper-rustls?/http2"]
native-tls-client = ["dep:hyper-tls", "dep:tokio-native-tls", "tokio-tungstenite/native-tls"]
openssl-ca = ["dep:openssl", "dep:moka"]
rcgen-ca = ["dep:rcgen", "dep:moka", "dep:time", "dep:rand"]
rustls-client = ["dep:hyper-rustls", "tokio-tungstenite/rustls-tls-webpki-roots"]
[[example]]
name = "log"
required-features = ["rcgen-ca", "rustls-client"]
[[example]]
name = "noop"
required-features = ["rcgen-ca", "rustls-client"]
[[example]]
name = "openssl"
required-features = ["openssl-ca", "rustls-client"]
[[test]]
name = "openssl_ca"
required-features = ["decoder", "openssl-ca", "native-tls-client", "rustls-client"]
[[test]]
name = "rcgen_ca"
required-features = ["decoder", "rcgen-ca", "native-tls-client", "rustls-client"]
[[test]]
name = "websocket"
required-features = ["decoder", "rcgen-ca", "native-tls-client", "rustls-client"]
[[bench]]
name = "certificate_authorities"
harness = false
required-features = ["openssl-ca", "rcgen-ca"]
[[bench]]
name = "decoder"
harness = false
required-features = ["decoder"]
[[bench]]
name = "proxy"
harness = false
required-features = ["rcgen-ca", "rustls-client"]
[profile.bench]
lto = true
debug = true
codegen-units = 1