# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" rust-version = "1.75.0" name = "hudsucker" version = "0.23.0" build = false exclude = [".github/"] autobins = false autoexamples = false autotests = false autobenches = false description = "MITM HTTP/S proxy" homepage = "https://github.com/omjadas/hudsucker" documentation = "https://docs.rs/hudsucker" readme = "README.md" keywords = [ "http", "proxy", ] categories = ["network-programming"] license = "MIT OR Apache-2.0" repository = "https://github.com/omjadas/hudsucker" [package.metadata.docs.rs] all-features = true rustdoc-args = [ "--cfg", "docsrs", ] [profile.bench] lto = true codegen-units = 1 debug = 2 [lib] name = "hudsucker" path = "src/lib.rs" [[example]] name = "log" path = "examples/log.rs" required-features = [ "rcgen-ca", "rustls-client", ] [[example]] name = "noop" path = "examples/noop.rs" required-features = [ "rcgen-ca", "rustls-client", ] [[example]] name = "openssl" path = "examples/openssl.rs" required-features = [ "openssl-ca", "rustls-client", ] [[test]] name = "openssl_ca" path = "tests/openssl_ca.rs" required-features = [ "decoder", "openssl-ca", "native-tls-client", "rustls-client", ] [[test]] name = "rcgen_ca" path = "tests/rcgen_ca.rs" required-features = [ "decoder", "rcgen-ca", "native-tls-client", "rustls-client", ] [[test]] name = "websocket" path = "tests/websocket.rs" required-features = [ "decoder", "rcgen-ca", "native-tls-client", "rustls-client", ] [[bench]] name = "certificate_authorities" path = "benches/certificate_authorities.rs" harness = false required-features = [ "openssl-ca", "rcgen-ca", ] [[bench]] name = "decoder" path = "benches/decoder.rs" harness = false required-features = ["decoder"] [[bench]] name = "proxy" path = "benches/proxy.rs" harness = false required-features = [ "rcgen-ca", "rustls-client", ] [dependencies.async-compression] version = "0.4.0" features = [ "tokio", "brotli", "gzip", "zlib", "zstd", ] optional = true [dependencies.bstr] version = "1.0.0" [dependencies.futures] version = "0.3.11" [dependencies.http] version = "1.1.0" [dependencies.http-body-util] version = "0.1.0" [dependencies.hyper] version = "1.1.0" [dependencies.hyper-rustls] version = "0.27.0" features = [ "http1", "logging", "tls12", "webpki-tokio", ] optional = true default-features = false [dependencies.hyper-tls] version = "0.6.0" optional = true [dependencies.hyper-tungstenite] version = "0.15.0" [dependencies.hyper-util] version = "0.1.3" features = [ "client-legacy", "server", "http1", ] [dependencies.moka] version = "0.12.0" features = ["future"] optional = true [dependencies.openssl] version = "0.10.46" optional = true [dependencies.rand] version = "0.8.0" optional = true [dependencies.rcgen] version = "0.13.0" features = ["x509-parser"] optional = true [dependencies.thiserror] version = "1.0.30" [dependencies.time] version = "0.3.35" optional = true [dependencies.tokio] version = "1.24.2" features = [ "macros", "rt", ] [dependencies.tokio-graceful] version = "0.1.6" [dependencies.tokio-native-tls] version = "0.3.1" optional = true [dependencies.tokio-rustls] version = "0.26.0" features = [ "logging", "tls12", ] [dependencies.tokio-tungstenite] version = "0.24.0" [dependencies.tokio-util] version = "0.7.1" features = ["io"] optional = true [dependencies.tracing] version = "0.1.35" features = ["log"] [dev-dependencies.async-http-proxy] version = "1.2.5" features = ["runtime-tokio"] [dev-dependencies.criterion] version = "0.5.0" features = ["async_tokio"] [dev-dependencies.reqwest] version = "0.12.0" [dev-dependencies.rustls-native-certs] version = "0.8.0" [dev-dependencies.rustls-pemfile] version = "2.0.0" [dev-dependencies.tokio] version = "1.24.2" features = ["full"] [dev-dependencies.tokio-native-tls] version = "0.3.1" [dev-dependencies.tracing-subscriber] version = "0.3.8" [dev-dependencies.x509-parser] version = "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", ]