Files
qbz/crates/qbz-offline-cache/Cargo.toml
T
vicrodh 6d8c951a38 chore(deps): rusqlite 0.40 (u64 casts; a latent two-statement execute fixed)
rusqlite 0.40 removed ToSql/FromSql for u64 (SQLite integers are i64):
every u64 column now reads/writes through an explicit i64 cast. It also
rejects a multi-statement execute() instead of silently running only the
first statement — which is what catalog.rs's editions/logical_albums
prune had been doing all along; it is an execute_batch now, so the
logical_albums prune finally runs.

cc
2026-08-29 08:36:21 -06:00

51 lines
1.9 KiB
TOML

[package]
name = "qbz-offline-cache"
version.workspace = true
edition.workspace = true
license.workspace = true
description = "Offline cache for QBZ: download-for-offline store, CMAF bundle vault, SQLite index, cached playback resolution (frontend-agnostic)"
[dependencies]
# Sibling crates: the network + crypto + init-parse + library index already live here.
qbz-models = { path = "../qbz-models" }
qbz-qobuz = { path = "../qbz-qobuz" }
qbz-cmaf = { path = "../qbz-cmaf" }
qbz-secrets = { path = "../qbz-secrets" }
qbz-library = { path = "../qbz-library" }
# SQLite index (match qbz-library's version/features)
rusqlite = { version = "0.40", features = ["bundled"] }
# Async runtime + HTTP (download pipeline + artwork)
tokio = { workspace = true }
reqwest = { workspace = true }
futures-util = { workspace = true }
# FLAC tag + artwork embedding (legacy-format post-processing)
lofty.workspace = true
# Platform cache dir (default offline-root location)
dirs = "6"
# DTO serialization (camelCase envelopes shared with the frontend)
serde = { workspace = true }
serde_json = { workspace = true }
# Logging
log = { workspace = true }
[dev-dependencies]
tempfile = "3"
# The purchase download harness (`tests/purchase_download_harness.rs`) stands up
# a real local HTTP server and drives the pipeline with real bytes. Integration
# tests do not inherit `[dependencies]`, so the crates it names are repeated here.
tokio = { workspace = true }
lofty.workspace = true
qbz-models = { path = "../qbz-models" }
qbz-library = { path = "../qbz-library" }
# reqwest is built with `rustls-tls-webpki-roots-no-provider`, so building ANY
# client panics with "No provider set" until a process-level CryptoProvider is
# installed. The app does that at startup (`qbz_app::ensure_crypto_provider`);
# a test binary has no startup, so the harness installs it itself.
rustls = { version = "0.23", features = ["aws_lc_rs"] }