forked from omjadas/hudsucker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Cargo.toml
105 lines (91 loc) · 3.32 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
[package]
name = "hudsucker"
version = "0.20.0"
edition = "2021"
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 }
async-trait = "0.1.67"
bstr = "1.0.0"
bytes = "1.0.0"
futures = "0.3.11"
http = "0.2.0"
hyper = { version = "0.14.15", features = ["client", "http1", "server", "tcp"] }
hyper-rustls = { version = "0.24.0", default-features = false, features = ["http1", "logging", "tls12", "webpki-tokio"], optional = true }
hyper-tls = { version = "0.5.0", optional = true }
hyper-tungstenite = "0.11.1"
moka = { version = "0.11.0", features = ["future"], optional = true }
openssl = { version = "0.10.39", optional = true }
rand = { version = "0.8.0", optional = true }
rcgen = { version = "0.11.0", features = ["x509-parser"], optional = true }
thiserror = "1.0.30"
time = { version = "0.3.7", optional = true }
tokio = { version = "1.24.2", features = ["rt"] }
tokio-rustls = "0.24.0"
tokio-tungstenite = "0.20.0"
tokio-util = { version = "0.7.0", features = ["io"], optional = true }
tracing = { version = "0.1.21", features = ["log"] }
[dev-dependencies]
async-http-proxy = { version = "1.2.5", features = ["runtime-tokio"] }
criterion = { version = "0.5.0", features = ["async_tokio"] }
reqwest = "0.11.10"
rustls-native-certs = "0.6.2"
rustls-pemfile = "1.0.0"
tls-listener = { version = "0.7.0", features = ["rustls", "hyper-h1", "hyper-h2"] }
tokio = { version = "1.24.2", features = ["full"] }
tokio-native-tls = "0.3.1"
tracing-subscriber = "0.3.0"
x509-parser = "0.15.0"
[features]
decoder = ["dep:async-compression", "dep:tokio-util", "hyper/stream", "tokio/io-util"]
default = ["decoder", "rcgen-ca", "rustls-client"]
full = ["decoder", "http2", "native-tls-client", "openssl-ca", "rcgen-ca", "rustls-client"]
http2 = ["hyper/http2", "hyper-rustls?/http2"]
native-tls-client = ["dep:hyper-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
codegen-units = 1