[package]
edition = "2024"
rust-version = "1.88"
name = "aioduct"
version = "0.1.10"
build = false
exclude = [
"docs/",
"target/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Async-native HTTP client built directly on hyper 1.x — no hyper-util, no legacy"
readme = "README.md"
keywords = [
"http",
"client",
"async",
"hyper",
"rustls",
]
categories = [
"network-programming",
"web-programming::http-client",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/adamcavendish/aioduct"
[package.metadata.docs.rs]
features = [
"json",
"charset",
"rustls",
"rustls-ring",
"rustls-native-roots",
"hickory-dns",
"doh",
"dot",
"blocking",
"tokio",
"smol",
"compio",
"http3",
"gzip",
"brotli",
"zstd",
"deflate",
"tower",
"tracing",
"otel",
"wasm",
"wasi-p2",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
__bench = []
blocking = ["tokio"]
brotli = ["dep:brotli"]
charset = [
"dep:encoding_rs",
"dep:mime",
]
compio = [
"dep:compio-runtime",
"dep:compio-driver",
"dep:async-io",
"dep:futures-io",
]
default = []
deflate = ["dep:flate2"]
doh = [
"hickory-dns",
"hickory-resolver/https-ring",
"hickory-resolver/webpki-roots",
]
dot = [
"hickory-dns",
"hickory-resolver/tls-ring",
"hickory-resolver/webpki-roots",
]
gzip = ["dep:flate2"]
hickory-dns = [
"dep:hickory-resolver",
"tokio",
]
http3 = [
"dep:h3",
"dep:h3-quinn",
"dep:quinn",
"dep:futures-util",
]
json = [
"dep:serde",
"dep:serde_json",
"dep:serde_urlencoded",
]
otel = [
"dep:opentelemetry",
"dep:opentelemetry-http",
]
rustls = [
"dep:rustls",
"dep:webpki-roots",
"dep:rustls-pemfile",
"dep:x509-parser",
]
rustls-aws-lc-rs = [
"rustls?/aws-lc-rs",
"quinn?/rustls-aws-lc-rs",
]
rustls-native-roots = [
"rustls",
"dep:rustls-native-certs",
]
rustls-ring = [
"rustls?/ring",
"quinn?/rustls-ring",
]
smol = [
"dep:smol",
"dep:async-io",
"dep:futures-io",
]
tokio = ["dep:tokio"]
tower = [
"dep:tower-service",
"dep:tower-layer",
]
tracing = ["dep:tracing"]
wasi-p2 = ["dep:wasi"]
wasm = [
"dep:wasm-bindgen",
"dep:wasm-bindgen-futures",
"dep:js-sys",
"dep:web-sys",
]
zstd = ["dep:zstd"]
[lib]
name = "aioduct"
path = "src/lib.rs"
[[test]]
name = "auth"
path = "tests/auth.rs"
[[test]]
name = "basic_requests"
path = "tests/basic_requests.rs"
[[test]]
name = "blocking_integration"
path = "tests/blocking_integration.rs"
[[test]]
name = "body_streaming"
path = "tests/body_streaming.rs"
[[test]]
name = "cache"
path = "tests/cache.rs"
[[test]]
name = "client_misc"
path = "tests/client_misc.rs"
[[test]]
name = "compio_integration"
path = "tests/compio_integration.rs"
[[test]]
name = "cookies"
path = "tests/cookies.rs"
[[test]]
name = "decompression"
path = "tests/decompression.rs"
[[test]]
name = "forwarding"
path = "tests/forwarding.rs"
[[test]]
name = "forwarding_h2c"
path = "tests/forwarding_h2c.rs"
[[test]]
name = "manual_doh_dot"
path = "tests/manual_doh_dot.rs"
[[test]]
name = "manual_h3_0rtt"
path = "tests/manual_h3_0rtt.rs"
[[test]]
name = "middleware"
path = "tests/middleware.rs"
[[test]]
name = "proxy"
path = "tests/proxy.rs"
[[test]]
name = "redirects"
path = "tests/redirects.rs"
[[test]]
name = "retry"
path = "tests/retry.rs"
[[test]]
name = "smol_integration"
path = "tests/smol_integration.rs"
[[test]]
name = "stale_connection"
path = "tests/stale_connection.rs"
[[test]]
name = "timeouts"
path = "tests/timeouts.rs"
[[test]]
name = "tls"
path = "tests/tls.rs"
[[test]]
name = "transport"
path = "tests/transport.rs"
[[test]]
name = "upgrade"
path = "tests/upgrade.rs"
[[test]]
name = "wasm_integration"
path = "tests/wasm_integration.rs"
[dependencies.async-io]
version = "2"
optional = true
[dependencies.base64]
version = "0.22"
[dependencies.brotli]
version = "8"
features = ["std"]
optional = true
default-features = false
[dependencies.bytes]
version = "1"
[dependencies.compio-driver]
version = "0.11"
features = ["polling"]
optional = true
default-features = false
[dependencies.compio-runtime]
version = "0.11"
features = ["time"]
optional = true
[dependencies.encoding_rs]
version = "0.8"
optional = true
[dependencies.flate2]
version = "1"
optional = true
[dependencies.futures-core]
version = "0.3"
[dependencies.futures-io]
version = "0.3"
optional = true
[dependencies.futures-util]
version = "0.3"
optional = true
[dependencies.h3]
version = "0.0.8"
optional = true
[dependencies.h3-quinn]
version = "0.0.10"
optional = true
[dependencies.hickory-resolver]
version = "0.26"
features = [
"tokio",
"system-config",
]
optional = true
default-features = false
[dependencies.http]
version = "1"
[dependencies.http-body]
version = "1"
[dependencies.http-body-util]
version = "0.1"
[dependencies.hyper]
version = "1"
features = [
"client",
"http1",
"http2",
]
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.memchr]
version = "2"
[dependencies.mime]
version = "0.3"
optional = true
[dependencies.opentelemetry]
version = "0.31"
features = ["trace"]
optional = true
default-features = false
[dependencies.opentelemetry-http]
version = "0.31"
optional = true
[dependencies.percent-encoding]
version = "2"
[dependencies.pin-project-lite]
version = "0.2"
[dependencies.quinn]
version = "0.11"
optional = true
default-features = false
[dependencies.rustls]
version = "0.23"
features = [
"std",
"tls12",
]
optional = true
default-features = false
[dependencies.rustls-native-certs]
version = "0.8"
optional = true
[dependencies.rustls-pemfile]
version = "2"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.serde_urlencoded]
version = "0.7"
optional = true
[dependencies.smol]
version = "2"
optional = true
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"net",
"rt",
"time",
"io-util",
"sync",
]
optional = true
[dependencies.tower-layer]
version = "0.3"
optional = true
[dependencies.tower-service]
version = "0.3"
optional = true
[dependencies.tracing]
version = "0.1"
features = ["std"]
optional = true
default-features = false
[dependencies.url]
version = "2"
[dependencies.wasi]
version = "0.14"
optional = true
[dependencies.wasm-bindgen]
version = "0.2"
optional = true
[dependencies.wasm-bindgen-futures]
version = "0.4"
optional = true
[dependencies.web-sys]
version = "0.3"
features = [
"Headers",
"Request",
"RequestInit",
"RequestMode",
"Response",
"Window",
"ReadableStream",
"ReadableStreamDefaultReader",
"AbortController",
"AbortSignal",
]
optional = true
[dependencies.webpki-roots]
version = "1"
optional = true
[dependencies.x509-parser]
version = "0.17"
optional = true
default-features = false
[dependencies.zstd]
version = "0.13"
optional = true
default-features = false
[dev-dependencies.http]
version = "1"
[dev-dependencies.serde]
version = "1"
features = ["derive"]
[dev-dependencies.serde_json]
version = "1"
[dev-dependencies.wasm-bindgen-test]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.socket2]
version = "0.6"
features = ["all"]
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.async-io]
version = "2"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.flate2]
version = "1"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.futures-io]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.futures-util]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.hyper]
version = "1"
features = ["server"]
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.rcgen]
version = "0.14"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.rustls]
version = "0.23"
features = [
"std",
"tls12",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.smol]
version = "2"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.tokio]
version = "1"
features = [
"net",
"rt",
"rt-multi-thread",
"time",
"macros",
"io-util",
"sync",
]
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.tokio-rustls]
version = "0.26"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]