Both requests built bare reqwest clients with no timeout; a stalled connection parked the fast path forever and the Odesli fallback, which only runs afterwards, never got its turn. One OnceLock client with the same 10 s / 5 s budget as odesli.rs. cc
33 lines
842 B
TOML
33 lines
842 B
TOML
[package]
|
|
name = "qbz-music-link"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
description = "Frontend-agnostic cross-platform music-link resolver for QBZ (Qobuz/Spotify/Apple/Tidal/Deezer/Odesli -> Qobuz)"
|
|
|
|
[dependencies]
|
|
qbz-qobuz = { path = "../qbz-qobuz" }
|
|
qbz-models = { path = "../qbz-models" }
|
|
|
|
# Async
|
|
tokio = { workspace = true }
|
|
async-trait = { workspace = true }
|
|
|
|
# HTTP
|
|
reqwest = { workspace = true }
|
|
|
|
# Serialization
|
|
serde = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
|
|
# Logging
|
|
log = { workspace = true }
|
|
|
|
# Error handling
|
|
thiserror = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
# The timeout test builds a reqwest client, which panics with "No provider
|
|
# set" until a process-level rustls CryptoProvider exists (same as qbz-qobuz).
|
|
rustls = { version = "0.23", features = ["aws_lc_rs"] }
|