# 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 = "2024"
name = "hpx"
version = "2.4.1"
authors = ["Akagi201 <akagi201@gmail.com>"]
build = false
include = [
    "README.md",
    "LICENSE",
    "src/**/*.rs",
    "examples/**/*.rs",
    "tests/**/*.rs",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High Performance HTTP Client"
readme = "README.md"
keywords = [
    "http",
    "client",
    "websocket",
    "exchange",
    "crypto",
]
categories = ["web-programming::http-client"]
license = "Apache-2.0"
repository = "https://github.com/longcipher/hpx"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]
targets = ["x86_64-unknown-linux-gnu"]

[features]
boring = [
    "dep:boring",
    "dep:tokio-boring",
    "dep:brotli",
    "dep:flate2",
]
brotli = ["tower-http/decompression-br"]
charset = [
    "dep:encoding_rs",
    "dep:mime",
]
cookies = [
    "dep:cookie",
    "dep:arc-swap",
]
default = [
    "boring",
    "http1",
    "http2",
]
deflate = ["tower-http/decompression-deflate"]
form = [
    "dep:serde",
    "dep:serde_urlencoded",
]
gzip = ["tower-http/decompression-gzip"]
hickory-dns = ["dep:hickory-resolver"]
http1 = [
    "dep:httparse",
    "dep:smallvec",
]
http2 = ["dep:http2"]
json = [
    "dep:serde",
    "dep:serde_json",
]
macros = ["tokio/macros"]
multipart = [
    "dep:mime_guess",
    "dep:sync_wrapper",
]
query = [
    "dep:serde",
    "dep:serde_urlencoded",
]
rustls-tls = [
    "dep:rustls",
    "dep:tokio-rustls",
    "dep:rustls-pki-types",
    "dep:webpki-roots",
    "dep:rustls-pemfile",
]
simd-json = [
    "json",
    "dep:simd-json",
]
socks = ["dep:tokio-socks"]
stream = [
    "tokio/fs",
    "dep:tokio-util",
    "dep:sync_wrapper",
]
system-proxy = [
    "dep:system-configuration",
    "dep:windows-registry",
]
tracing = [
    "http2/tracing",
    "dep:tracing",
]
webpki-roots = ["dep:webpki-root-certs"]
ws = ["ws-yawc"]
ws-fastwebsockets = [
    "dep:sha1",
    "dep:fastwebsockets",
]
ws-yawc = ["dep:hpx-yawc"]
zstd = ["tower-http/decompression-zstd"]

[lib]
name = "hpx"
path = "src/lib.rs"

[[example]]
name = "cert_store"
path = "examples/cert_store.rs"
required-features = ["webpki-roots"]

[[example]]
name = "check_peet"
path = "examples/check_peet.rs"

[[example]]
name = "connect_via_lower_priority_tokio_runtime"
path = "examples/connect_via_lower_priority_tokio_runtime.rs"
required-features = ["tracing"]

[[example]]
name = "emulation"
path = "examples/emulation.rs"
required-features = [
    "gzip",
    "brotli",
    "zstd",
    "deflate",
    "tracing",
]

[[example]]
name = "form"
path = "examples/form.rs"
required-features = ["form"]

[[example]]
name = "http1_websocket"
path = "examples/http1_websocket.rs"
required-features = [
    "ws",
    "futures-util/std",
]

[[example]]
name = "http2_websocket"
path = "examples/http2_websocket.rs"
required-features = [
    "ws",
    "futures-util/std",
]

[[example]]
name = "json_dynamic"
path = "examples/json_dynamic.rs"
required-features = ["json"]

[[example]]
name = "json_typed"
path = "examples/json_typed.rs"
required-features = ["json"]

[[example]]
name = "keylog"
path = "examples/keylog.rs"

[[example]]
name = "request_with_emulation"
path = "examples/request_with_emulation.rs"
required-features = [
    "gzip",
    "brotli",
    "zstd",
    "deflate",
    "tracing",
]

[[example]]
name = "request_with_interface"
path = "examples/request_with_interface.rs"

[[example]]
name = "request_with_local_address"
path = "examples/request_with_local_address.rs"

[[example]]
name = "request_with_proxy"
path = "examples/request_with_proxy.rs"
required-features = ["socks"]

[[example]]
name = "request_with_redirect"
path = "examples/request_with_redirect.rs"

[[example]]
name = "request_with_version"
path = "examples/request_with_version.rs"

[[example]]
name = "tor_socks"
path = "examples/tor_socks.rs"
required-features = ["socks"]

[[example]]
name = "tower_delay"
path = "examples/tower_delay.rs"

[[example]]
name = "tower_jitter_delay"
path = "examples/tower_jitter_delay.rs"

[[example]]
name = "unix_socket"
path = "examples/unix_socket.rs"

[[test]]
name = "badssl"
path = "tests/badssl.rs"

[[test]]
name = "brotli"
path = "tests/brotli.rs"
required-features = [
    "brotli",
    "stream",
]

[[test]]
name = "client"
path = "tests/client.rs"

[[test]]
name = "connector_layers"
path = "tests/connector_layers.rs"

[[test]]
name = "cookie"
path = "tests/cookie.rs"
required-features = ["cookies"]

[[test]]
name = "deflate"
path = "tests/deflate.rs"
required-features = [
    "deflate",
    "stream",
]

[[test]]
name = "emulation"
path = "tests/emulation.rs"

[[test]]
name = "gzip"
path = "tests/gzip.rs"
required-features = [
    "gzip",
    "stream",
]

[[test]]
name = "hooks"
path = "tests/hooks.rs"

[[test]]
name = "layers"
path = "tests/layers.rs"

[[test]]
name = "multipart"
path = "tests/multipart.rs"
required-features = [
    "multipart",
    "stream",
]

[[test]]
name = "proxy"
path = "tests/proxy.rs"

[[test]]
name = "proxy_pool"
path = "tests/proxy_pool.rs"

[[test]]
name = "redirect"
path = "tests/redirect.rs"

[[test]]
name = "retry"
path = "tests/retry.rs"

[[test]]
name = "stack_and_alloc"
path = "tests/stack_and_alloc.rs"

[[test]]
name = "timeouts"
path = "tests/timeouts.rs"

[[test]]
name = "unix_socket"
path = "tests/unix_socket.rs"

[[test]]
name = "upgrade"
path = "tests/upgrade.rs"

[[test]]
name = "zstd"
path = "tests/zstd.rs"
required-features = [
    "zstd",
    "stream",
]

[dependencies.ahash]
version = "0.8.12"

[dependencies.arc-swap]
version = "1.9.0"
optional = true

[dependencies.base64]
version = "0.22.1"

[dependencies.boring]
version = "5.0.2"
optional = true

[dependencies.brotli]
version = "8.0.2"
optional = true

[dependencies.bytes]
version = "1.11.1"

[dependencies.cookie]
version = "0.18.1"
optional = true

[dependencies.encoding_rs]
version = "0.8.35"
optional = true

[dependencies.fastwebsockets]
version = "2.4.1"
features = [
    "upgrade",
    "unstable-split",
]
optional = true
package = "hpx-fastwebsockets"

[dependencies.flate2]
version = "1.1.9"
optional = true

[dependencies.futures-channel]
version = "0.3.32"

[dependencies.futures-util]
version = "0.3.32"

[dependencies.hickory-resolver]
version = "0.25.2"
optional = true

[dependencies.hpx-yawc]
version = "2.4.1"
optional = true

[dependencies.http]
version = "1.4.0"

[dependencies.http-body]
version = "1.0.1"

[dependencies.http-body-util]
version = "0.1.3"

[dependencies.http2]
version = "0.5.13"
features = ["unstable"]
optional = true

[dependencies.httparse]
version = "1.10.1"
optional = true

[dependencies.ipnet]
version = "2.12.0"

[dependencies.mime]
version = "0.3.17"
optional = true

[dependencies.mime_guess]
version = "2.0.5"
optional = true

[dependencies.parking_lot]
version = "0.12.3"

[dependencies.percent-encoding]
version = "2.3.2"

[dependencies.pin-project-lite]
version = "0.2.17"

[dependencies.rand]
version = "0.10.0"

[dependencies.rustls]
version = "0.23.37"
features = [
    "std",
    "tls12",
    "ring",
]
optional = true

[dependencies.rustls-pemfile]
version = "2.2.0"
optional = true

[dependencies.rustls-pki-types]
version = "1.14.0"
optional = true

[dependencies.scc]
version = "3.6.11"

[dependencies.schnellru]
version = "0.2.4"

[dependencies.serde]
version = "1.0.228"
features = ["derive"]
optional = true

[dependencies.serde_json]
version = "1.0.149"
optional = true

[dependencies.serde_urlencoded]
version = "0.7.1"
optional = true

[dependencies.sha1]
version = "0.10.6"
optional = true

[dependencies.simd-json]
version = "0.17.0"
optional = true

[dependencies.smallvec]
version = "1.15.1"
features = [
    "const_generics",
    "const_new",
]
optional = true

[dependencies.socket2]
version = "0.6.3"
features = ["all"]

[dependencies.sync_wrapper]
version = "1.0.2"
features = ["futures"]
optional = true

[dependencies.tokio]
version = "1.50.0"
features = [
    "net",
    "time",
    "rt",
    "io-util",
    "sync",
]

[dependencies.tokio-boring]
version = "5.0.0"
optional = true

[dependencies.tokio-rustls]
version = "0.26"
features = ["ring"]
optional = true

[dependencies.tokio-socks]
version = "0.5.2"
optional = true

[dependencies.tokio-util]
version = "0.7.18"
features = ["io"]
optional = true

[dependencies.tower]
version = "0.5.3"
features = [
    "timeout",
    "util",
    "retry",
]

[dependencies.tower-http]
version = "0.6.8"
optional = true

[dependencies.tracing]
version = "0.1.44"
features = ["std"]
optional = true

[dependencies.url]
version = "2.5.8"

[dependencies.want]
version = "0.3.1"

[dependencies.webpki-root-certs]
version = "1.0.6"
optional = true

[dependencies.webpki-roots]
version = "1.0.6"
optional = true

[dev-dependencies.criterion]
version = "0.8.2"

[dev-dependencies.futures]
version = "0.3.32"
features = ["std"]

[dev-dependencies.hyper]
version = "1.8.1"
features = [
    "http1",
    "http2",
    "server",
]

[dev-dependencies.hyper-util]
version = "0.1.20"
features = [
    "http1",
    "http2",
    "server-auto",
    "server-graceful",
    "tokio",
]

[dev-dependencies.pretty_env_logger]
version = "0.5.0"

[dev-dependencies.serde]
version = "1.0.228"
features = ["derive"]

[dev-dependencies.tokio]
version = "1.50.0"
features = [
    "macros",
    "rt-multi-thread",
]

[dev-dependencies.tokio-test]
version = "0.4.5"

[dev-dependencies.tower]
version = "0.5.3"
features = ["limit"]

[dev-dependencies.tracing]
version = "0.1.44"

[dev-dependencies.tracing-subscriber]
version = "0.3.23"

[dev-dependencies.zstd]
version = "0.13.3"

[target.'cfg(target_os = "macos")'.dependencies.system-configuration]
version = "0.7.0"
optional = true

[target."cfg(unix)".dependencies.libc]
version = "0.2.183"

[target."cfg(windows)".dependencies.windows-registry]
version = "0.6.1"
optional = true
