[package]
edition = "2024"
name = "hpx"
version = "1.0.0"
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 = false
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"]
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 = [
"dep:sha1",
"dep:fastwebsockets",
]
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 = "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 = "redirect"
path = "tests/redirect.rs"
[[test]]
name = "retry"
path = "tests/retry.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.base64]
version = "0.22.1"
[dependencies.boring]
version = "5.0.0-alpha.3"
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 = "1.0.0"
features = [
"upgrade",
"unstable-split",
]
optional = true
package = "hpx-fastwebsockets"
[dependencies.flate2]
version = "1.1.9"
optional = true
[dependencies.futures-channel]
version = "0.3.31"
[dependencies.futures-util]
version = "0.3.31"
[dependencies.hickory-resolver]
version = "0.25.2"
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.11"
features = ["unstable"]
optional = true
[dependencies.httparse]
version = "1.10.1"
optional = true
[dependencies.ipnet]
version = "2.11.0"
[dependencies.mime]
version = "0.3.17"
optional = true
[dependencies.mime_guess]
version = "2.0.5"
optional = true
[dependencies.percent-encoding]
version = "2.3.2"
[dependencies.pin-project-lite]
version = "0.2.16"
[dependencies.rustls]
version = "0.23.36"
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.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.2"
features = ["all"]
[dependencies.sync_wrapper]
version = "1.0.2"
features = ["futures"]
optional = true
[dependencies.tokio]
version = "1.49.0"
features = [
"net",
"time",
"rt",
"io-util",
"sync",
]
[dependencies.tokio-boring]
version = "5.0.0-alpha.3"
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.31"
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.parking_lot]
version = "0.12.3"
[dev-dependencies.pretty_env_logger]
version = "0.5.0"
[dev-dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dev-dependencies.tokio]
version = "1.49.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.22"
[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.180"
[target."cfg(windows)".dependencies.windows-registry]
version = "0.6.1"
optional = true