[package]
name = "hyper-http-proxy"
version = "1.1.1"
authors = ["MetalBear Tech LTD <hi@metalbear.co>"]
description = "A proxy connector for Hyper-based applications"
documentation = "https://docs.rs/hyper-http-proxy"
repository = "https://github.com/metalbear-co/hyper-http-proxy"
readme = "README.md"
keywords = ["hyper", "proxy", "tokio", "ssl"]
categories = ["web-programming::http-client", "asynchronous", "authentication"]
license = "MIT"
edition = "2021"
rust-version = "1.70.0"

[dependencies]
tokio = { version = "1.35", features = ["io-std", "io-util"] }
hyper = { version = "1", features = ["client"] }
hyper-util = { version = "0.1", features = ["client", "client-legacy", "tokio"] }

tower-service = "0.3"
http = "1"
futures-util = { version = "0.3", default-features = false }
bytes = "1.5"
pin-project-lite = "0.2"
hyper-tls = { version = "0.6", optional = true }
tokio-native-tls = { version = "0.3", optional = true }
native-tls = { version = "0.2", optional = true }
tokio-rustls = { version = "0.26", optional = true, default-features = false}
hyper-rustls = { version = "0.27", optional = true, default-features = false }

webpki-roots = { version = "0.26", optional = true }
headers = "0.4"

[dev-dependencies]
tokio = { version = "1.35", features = ["full"] }
hyper = { version = "1.0", features = ["client", "http1"] }
hyper-util = { version = "0.1", features = ["client", "client-legacy", "http1", "tokio"] }
http-body-util = "0.1"
futures = "0.3"

[features]
default = ["default-tls"]
default-tls = ["rustls-tls-native-roots"]
native-tls = ["dep:native-tls", "tokio-native-tls", "hyper-tls", "__tls"]
native-tls-vendored = ["native-tls", "tokio-native-tls?/vendored"]
rustls-tls-webpki-roots = ["dep:webpki-roots", "__rustls", "hyper-rustls/webpki-roots"]
rustls-tls-native-roots = ["__rustls", "hyper-rustls/rustls-native-certs"]

__tls = []

# Enables common rustls code.
# Equivalent to rustls-tls-manual-roots but shorter :)
__rustls = ["dep:hyper-rustls", "dep:tokio-rustls", "__tls"]
