[package] name = "qbz-nix" version = "1.1.7" description = "Native high-fidelity client for Qobuz™ subscribers on Linux with Hi-Fi audio support (uses the Qobuz API; not certified by Qobuz)" authors = ["blitzkriegfc"] edition = "2021" [lib] name = "qbz_nix_lib" crate-type = ["staticlib", "cdylib", "rlib"] [build-dependencies] tauri-build = { version = "2", features = [] } [dependencies] # Tauri tauri = { version = "2", features = ["protocol-asset", "tray-icon"] } tauri-plugin-opener = "2" # Serialization serde = { version = "1", features = ["derive"] } serde_json = "1" # HTTP Client reqwest = { version = "0.12", features = ["json", "cookies", "rustls-tls", "stream", "blocking"], default-features = false } # Async Runtime tokio = { version = "1", features = ["full"] } # Crypto (for API signatures) md-5 = "0.10" base64 = "0.22" # Regex (for bundle parsing) regex = "1" lazy_static = "1.4" # Time chrono = "0.4" # Error handling thiserror = "2" anyhow = "1" # Logging log = "0.4" env_logger = "0.11" # Random number generation (for shuffle) rand = "0.8" # Audio playback rodio = { version = "0.19", features = ["symphonia-all"] } symphonia = { version = "0.5", features = ["all"] } # Audio visualization (FFT) spectrum-analyzer = "1.5" # Media controls (MPRIS on Linux) souvlaki = "0.7" # Desktop notifications notify-rust = "4" # Image processing (tray icon + thumbnails) image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] } # URL opening open = "5" # Local library walkdir = "2" lofty = "0.18" rusqlite = { version = "0.31", features = ["bundled"] } dirs = "5" filetime = "0.2" glob = "0.3" uuid = { version = "1", features = ["v4"] } # File dialogs - platform specific (see target dependencies below) # URL encoding urlencoding = "2" # Environment variables dotenvy = "0.15" # Secure credential storage (system keyring) keyring = "3" # Clipboard tauri-plugin-clipboard-manager = "2" # Casting (Chromecast, AirPlay, DLNA) rust_cast = "0.18.1" mdns-sd = "0.11" tiny_http = "0.12" rupnp = { version = "3", features = ["full_device_spec"] } futures-util = "0.3" # Platform-specific dependencies [target.'cfg(target_os = "linux")'.dependencies] # Note: xdg-portal feature disabled due to ashpd/zbus version incompatibility tauri-plugin-dialog = { version = "2.6.0" } # Direct ALSA access for bit-perfect playback (bypasses CPAL limitations) alsa = "0.9" [target.'cfg(target_os = "macos")'.dependencies] tauri-plugin-dialog = { version = "2.6.0" } [target.'cfg(target_os = "windows")'.dependencies] tauri-plugin-dialog = { version = "2.6.0" } [dev-dependencies] tempfile = "3" [patch.crates-io] cpal = { path = "vendor/cpal" } rodio = { path = "vendor/rodio" }