[package]
edition = "2021"
rust-version = "1.85.0"
name = "cdk-http-client"
version = "0.18.0"
authors = ["CDK Developers"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "HTTP client abstraction for CDK"
homepage = "https://github.com/cashubtc/cdk"
readme = "README.md"
license = "Apache-2.0 OR MIT"
repository = "https://github.com/cashubtc/cdk.git"
[features]
bip353 = [
"dep:dnssec-prover",
"dep:tokio",
]
bitreq = ["dep:bitreq"]
default = ["bitreq"]
reqwest = ["dep:reqwest"]
tor = [
"dep:arti-client",
"dep:arti-hyper",
"dep:getrandom",
"dep:http",
"dep:hyper",
"dep:tls-api",
"dep:tls-api-native-tls",
"dep:tokio",
"dep:tor-rtcompat",
]
[lib]
name = "cdk_http_client"
path = "src/lib.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[dependencies.async-trait]
version = "0.1"
[dependencies.cashu]
version = "=0.18.0"
default-features = false
[dependencies.futures]
version = "0.3.28"
features = ["async-await"]
default-features = false
[dependencies.regex]
version = "1"
[dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
[dependencies.serde_json]
version = "1"
[dependencies.serde_urlencoded]
version = "0.7"
[dependencies.thiserror]
version = "2"
[dependencies.tracing]
version = "0.1"
features = [
"attributes",
"log",
]
default-features = false
[dependencies.url]
version = "2.3"
[dev-dependencies.mockito]
version = "1"
[dev-dependencies.serde]
version = "1"
features = [
"derive",
"rc",
]
[dev-dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
"test-util",
"sync",
"time",
"rt",
"macros",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.arti-client]
version = "0.19.0"
features = [
"tokio",
"rustls",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.arti-hyper]
version = "0.19.0"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.bitreq]
version = "0.3.4"
features = [
"async",
"async-https-rustls",
"json-using-serde",
"proxy",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.dnssec-prover]
version = "0.6.9"
features = [
"std",
"tokio",
"validation",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.getrandom]
version = "0.4"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.http]
version = "0.2"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.hyper]
version = "0.14"
features = [
"client",
"http1",
"http2",
]
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.reqwest]
version = "0.13"
features = [
"form",
"json",
"rustls-no-provider",
"socks",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.rustls]
version = "0.23.27"
features = ["ring"]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tls-api]
version = "0.9"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tls-api-native-tls]
version = "0.9"
optional = true
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio]
version = "1"
features = [
"rt",
"macros",
"test-util",
"sync",
"time",
"sync",
"time",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tokio-tungstenite]
version = "0.26.0"
features = [
"rustls",
"rustls-tls-native-roots",
"connect",
]
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.tor-rtcompat]
version = "0.19.0"
features = [
"tokio",
"rustls",
]
optional = true
[target.'cfg(target_arch = "wasm32")'.dependencies.futures-channel]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.4"
features = ["wasm_js"]
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies.uuid]
version = "1.17"
features = [
"v4",
"v7",
"serde",
"js",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "0.2"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3"
features = [
"WebSocket",
"MessageEvent",
"CloseEvent",
"ErrorEvent",
"BinaryType",
"Request",
"RequestInit",
"RequestRedirect",
"Response",
"Headers",
]
[lints.clippy]
large_enum_variant = "warn"
missing_panics_doc = "warn"
missing_safety_doc = "warn"
unwrap_used = "deny"
use_debug = "warn"
[lints.rust]
missing_debug_implementations = "warn"
missing_docs = "warn"
unsafe_code = "forbid"
[lints.rustdoc]
bare_urls = "warn"