[package]
edition = "2024"
name = "zenwave"
version = "0.5.3"
authors = ["Lexo Liu<me@lexo.cool>"]
build = false
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 = []
curl-backend = [
"dep:curl",
"dep:blocking",
"proxy",
]
default = [
"default-backend",
"ws",
]
default-backend = [
"hyper-backend",
"native-tls",
"rustls",
]
hyper-backend = [
"dep:hyper",
"dep:http-body-util",
"dep:dns-lookup",
]
hyper-native-tls = [
"hyper-backend",
"native-tls",
]
hyper-rustls = [
"hyper-backend",
"rustls",
]
native-tls = [
"dep:async-native-tls",
"dep:native-tls",
]
proxy = []
rustls = [
"dep:futures-rustls",
"dep:rustls",
"dep:webpki-roots",
"dep:rustls-native-certs",
]
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 = "error_tests"
path = "tests/error_tests.rs"
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
[[test]]
name = "middleware_tests"
path = "tests/middleware_tests.rs"
[[test]]
name = "redirect_tests"
path = "tests/redirect_tests.rs"
[[test]]
name = "retry_tests"
path = "tests/retry_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"
[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.serde_json]
version = "1.0"
[dev-dependencies.tempfile]
version = "3.13"
[dev-dependencies.test_executors]
version = "0.4"
[dev-dependencies.tiny_http]
version = "0.12"
[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-native-tls]
version = "0.5.0"
features = ["runtime-async-std"]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.async-net]
version = "2.0"
[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.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"
optional = true
[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.http-body-util]
version = "0.1.3"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hyper]
version = "1.8"
features = [
"client",
"http1",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.native-tls]
version = "0.2"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.once_cell]
version = "1.19"
[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.time]
version = "0.3.47"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tower-service]
version = "0.3"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.webpki-roots]
version = "1.0"
optional = true
[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_vendor = "apple")'.dependencies.block]
version = "0.1"
[target.'cfg(target_vendor = "apple")'.dependencies.objc]
version = "0.2"
[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"