[workspace] resolver = "2" members = [ "qbz-app", "qbz-theme", "qbz-models", "qbz-audio", "qbz-player", "qbz-qobuz", "qbz-radio", "qbz-core", "qbz-integrations", "qbz-cache", "qbz-library", "qbz-cast", "qbz-cmaf", "qbz-secrets", "qbz-offline-cache", "qbz-plex", "qconnect-core", "qconnect-protocol", "qconnect-transport-ws", "qconnect-app", "qbz-slint", "qbz-credentials", "qbz-media-controls", "qbz-mixtape", "qbz-playlist-import", "qbz-lyrics", "qbz-booklet", "qbz-i18n", ] [workspace.package] version = "0.1.0" edition = "2021" license = "MIT" repository = "https://github.com/vicrodh/qbz" [workspace.dependencies] # Async runtime tokio = { version = "1", features = ["full"] } async-trait = "0.1" futures-util = "0.3" tokio-stream = { version = "0.1", features = ["sync"] } # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1" # HTTP reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls", "cookies", "stream"] } # Logging log = "0.4" tracing = "0.1" # Error handling thiserror = "2" anyhow = "1" # Crypto (Qobuz auth) md-5 = "0.10" base64 = "0.22" # Time chrono = "0.4" # Regex regex = "1" # Audio symphonia = { version = "0.5", features = ["all"] } # Random number generation (shuffle / DJ-mix) — mirrors src-tauri pin rand = "0.10" # Fuzzy string similarity (track-mix dedup) — mirrors src-tauri pin strsim = "0.11" # Note: Linux-specific dependencies (alsa) go in individual crate Cargo.toml files # because workspace manifests cannot have [target] sections [patch.crates-io] # Slint 1.16's femtovg-wgpu renderer leaves the wgpu surface alpha mode at # `Auto`, which resolves as an opaque compositor surface on KWin/Wayland and # makes borderless transparent windows show a black rectangular backing. The # patch keeps Slint pinned but chooses a supported non-opaque composite alpha # mode when the surface advertises one, so the miniplayer card can have real # transparent rounded corners. i-slint-renderer-femtovg = { path = "vendor/i-slint-renderer-femtovg-1.16.1" }