feat(qbz-library): extract local library management to standalone crate

Create qbz-library crate with:
- LibraryScanner: directory scanning for audio files
- MetadataExtractor: audio metadata extraction via lofty
- LibraryDatabase: SQLite persistence with WAL mode
- CueParser: CUE sheet parsing for single-file albums
- Thumbnails: artwork extraction and thumbnail generation
- Tag sidecar: album metadata override files

src-tauri re-exports from qbz-library for backwards compatibility.
Enables TUI/headless clients to manage local libraries without Tauri.
This commit is contained in:
vicrodh committed 2026-02-15 12:12:52 -06:00
1 parent 384459d4d7
commit d6e4b3349b
14 files changed
+201 -86

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
[package]
name = "qbz-library"
version = "0.1.0"
edition = "2021"
description = "Local music library management for QBZ - scanning, indexing, metadata extraction"
authors = ["blitzkriegfc"]
[dependencies]
# Logging
log = "0.4"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
# Error handling
thiserror = "2"
# Database
rusqlite = { version = "0.31", features = ["bundled"] }
# Filesystem
walkdir = "2"
dirs = "5"
# Audio metadata
lofty = "0.18"
# Image processing (thumbnails)
image = { version = "0.25", default-features = false, features = ["png", "jpeg", "webp"] }
# File system utilities
glob = "0.3"
# UUID generation
uuid = { version = "1", features = ["v4"] }