Initial implementation of qobuz-qt
- Rust backend (qobuz-backend static lib): Qobuz API client (reqwest/tokio), Symphonia audio decoder, CPAL audio output, extern "C" FFI bridge - Qt 6 frontend mirroring spotify-qt layout: toolbar with playback controls, left library dock, central track list, right search panel - Auth: email/password login with MD5-signed requests; session token persisted via QSettings - Playback: double-click a track → Rust fetches stream URL → Symphonia decodes → CPAL outputs to default audio device - Dark Fusion palette matching spotify-qt feel Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
33
rust/Cargo.toml
Normal file
33
rust/Cargo.toml
Normal file
@@ -0,0 +1,33 @@
|
||||
[package]
|
||||
name = "qobuz-backend"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
name = "qobuz_backend"
|
||||
crate-type = ["staticlib"]
|
||||
|
||||
[dependencies]
|
||||
# HTTP client – blocking feature is needed by the audio decoder
|
||||
reqwest = { version = "0.12", features = ["json", "rustls-tls", "stream", "blocking"], default-features = false }
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
|
||||
# Serialization
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
|
||||
# Audio decoding + output
|
||||
symphonia = { version = "0.5", features = ["all"] }
|
||||
cpal = { version = "0.15", features = ["jack"] }
|
||||
rb = "0.3"
|
||||
|
||||
# Misc
|
||||
anyhow = "1"
|
||||
thiserror = "2"
|
||||
md5 = "0.7"
|
||||
dirs = "5"
|
||||
toml = "0.8"
|
||||
|
||||
[profile.release]
|
||||
lto = "thin"
|
||||
opt-level = 3
|
||||
Reference in New Issue
Block a user