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:
1 parent
384459d4d7
commit
d6e4b3349b
14 files changed
+201
-86
No files matched your search
@@ -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"] }
|
||||
Reference in new issue
Block a user