[package]
edition = "2024"
name = "zenwave"
version = "0.7.1"
authors = ["Lexo Liu<me@lexo.cool>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Ergonomic HTTP client framework."
readme = "README.md"
keywords = [
"http",
"client",
"async",
"networking",
"middleware",
]
categories = [
"network-programming",
"web-programming::http-client",
]
license = "MIT"
repository = "https://github.com/zen-rs/zenwave"
[features]
apple-backend = [
"dep:block",
"dep:objc",
"dep:security-framework",
"dep:core-foundation",
]
curl-backend = [
"dep:curl",
"dep:blocking",
"dep:rustls-native-certs",
"dep:pem",
]
default = [
"hyper-backend",
"rustls",
"ws",
"http2",
"http3",
]
http2 = ["hyper/http2"]
http3 = [
"rustls",
"dep:bytes",
"dep:h3",
"dep:h3-quinn",
"dep:quinn",
]
hyper-backend = []
hyper-native-tls = [
"hyper-backend",
"native-tls",
]
hyper-rustls = [
"hyper-backend",
"rustls",
]
native-tls = ["dep:native-tls"]
rustls = [
"dep:futures-rustls",
"dep:rustls",
"dep:rustls-platform-verifier",
]
ws = ["dep:async-tungstenite"]
[lib]
name = "zenwave"
path = "src/lib.rs"
[[example]]
name = "basic_get"
path = "examples/basic_get.rs"
required-features = ["hyper-backend"]
[[example]]
name = "custom_client"
path = "examples/custom_client.rs"
required-features = ["hyper-backend"]
[[example]]
name = "websocket_echo"
path = "examples/websocket_echo.rs"
required-features = [
"hyper-backend",
"ws",
]
[[test]]
name = "auth_tests"
path = "tests/auth_tests.rs"
[[test]]
name = "backend_tests"
path = "tests/backend_tests.rs"
[[test]]
name = "client_tests"
path = "tests/client_tests.rs"
[[test]]
name = "convenience_tests"
path = "tests/convenience_tests.rs"
[[test]]
name = "curl_env_proxy_tests"
path = "tests/curl_env_proxy_tests.rs"
[[test]]
name = "error_tests"
path = "tests/error_tests.rs"
[[test]]
name = "fixture_tests"
path = "tests/fixture_tests.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "middleware_tests"
path = "tests/middleware_tests.rs"
[[test]]
name = "proxy_tests"
path = "tests/proxy_tests.rs"
[[test]]
name = "redirect_tests"
path = "tests/redirect_tests.rs"
[[test]]
name = "retry_tests"
path = "tests/retry_tests.rs"
[[test]]
name = "transport_tests"
path = "tests/transport_tests.rs"
[[test]]
name = "wasm_browser_tests"
path = "tests/wasm_browser_tests.rs"
[[test]]
name = "wasm_worker_tests"
path = "tests/wasm_worker_tests.rs"
[[test]]
name = "websocket_tests"
path = "tests/websocket_tests.rs"
[dependencies.anyhow]
version = "1.0.100"
[dependencies.async-lock]
version = "3.4"
[dependencies.base64]
version = "0.22"
[dependencies.futures-channel]
version = "0.3"
[dependencies.futures-io]
version = "0.3"
[dependencies.futures-util]
version = "0.3"
features = [
"io",
"sink",
]
[dependencies.http]
version = "1.3.1"
[dependencies.http-kit]
version = "0.4.3"
[dependencies.httpdate]
version = "1.0"
[dependencies.js-sys]
version = "0.3.82"
[dependencies.serde]
version = "1.0"
features = ["derive"]
default-features = false
[dependencies.serde_json]
version = "1.0"
[dependencies.thiserror]
version = "2.0"
[dependencies.tracing]
version = "0.1"
[dependencies.url]
version = "2.5"
[dev-dependencies.futures-executor]
version = "0.3"
[dev-dependencies.httparse]
version = "1.10"
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.tempfile]
version = "3.13"
[dev-dependencies.test_executors]
version = "0.4"
[build-dependencies.cfg_aliases]
version = "0.2"
[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android")))'.dependencies.rustls-platform-verifier]
version = "0.7"
optional = true
[target.'cfg(all(unix, not(target_os = "android")))'.dependencies.libc]
version = "0.2"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-fs]
version = "2.2.0"
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-io]
version = "2.4"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-net]
version = "2.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-trait]
version = "0.1"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-tungstenite]
version = "0.34.0"
features = ["smol-runtime"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.blocking]
version = "1.6"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.bytes]
version = "1"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.curl]
version = "0.4"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.dirs]
version = "6.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.dns-lookup]
version = "3.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.executor-core]
version = "0.7.0"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.futures-rustls]
version = "0.26"
features = [
"ring",
"tls12",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.h3]
version = "0.0.8"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.h3-quinn]
version = "0.0.10"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hickory-proto]
version = "0.26"
features = ["std"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hickory-resolver]
version = "0.26"
features = ["system-config"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.http-body-util]
version = "0.1.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hyper]
version = "1.8"
features = [
"client",
"http1",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hyper-util]
version = "0.1.20"
features = [
"client-proxy",
"client-proxy-system",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.native-tls]
version = "0.2"
features = ["alpn"]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.once_cell]
version = "1.19"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.pem]
version = "4"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.quinn]
version = "0.11"
features = ["rustls-ring"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rustls]
version = "0.23"
features = [
"ring",
"std",
"tls12",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rustls-native-certs]
version = "0.8"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rustls-pki-types]
version = "1.12"
features = ["std"]
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.socket2]
version = "0.6"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.time]
version = "0.3.47"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower-service]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.futures-rustls]
version = "0.26"
features = [
"ring",
"tls12",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.hyper]
version = "1.8"
features = [
"server",
"http1",
"http2",
]
[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 = [
"ring",
"std",
"tls12",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.smol]
version = "2.0"
[target.'cfg(target_arch = "wasm32")'.dependencies.gloo-timers]
version = "0.3"
features = ["futures"]
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2.105"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4.55"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-streams]
version = "0.5"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
"Window",
"Request",
"RequestInit",
"Headers",
"ReadableStream",
"Response",
"WebSocket",
"MessageEvent",
"CloseEvent",
"ErrorEvent",
"BinaryType",
]
[target.'cfg(target_arch = "wasm32")'.dev-dependencies.wasm-bindgen-test]
version = "0.3"
[target.'cfg(target_os = "android")'.dependencies.jni]
version = "0.22"
[target.'cfg(target_os = "android")'.dependencies.jni-min-helper]
version = "0.4"
[target.'cfg(target_os = "android")'.dependencies.ndk-context]
version = "0.1"
[target.'cfg(target_vendor = "apple")'.dependencies.block]
version = "0.1"
optional = true
[target.'cfg(target_vendor = "apple")'.dependencies.core-foundation]
version = "0.10"
optional = true
[target.'cfg(target_vendor = "apple")'.dependencies.objc]
version = "0.2"
optional = true
[target.'cfg(target_vendor = "apple")'.dependencies.security-framework]
version = "3.7"
optional = true
[lints.clippy]
all = "warn"
cargo = "allow"
complexity = "warn"
correctness = "warn"
nursery = "warn"
pedantic = "warn"
perf = "warn"
style = "warn"
suspicious = "warn"
[lints.rust]
missing_debug_implementations = "warn"
missing_docs = "warn"
unexpected_cfgs = "allow"