Files
MusicFS/musicfs/Cargo.toml
T
Alexander 34d05b7a49 Add Week 9 Smart Features: collections, artwork, predictive prefetch
Smart Collections (musicfs-search/src/collections.rs):
- CollectionStore with thread-safe Mutex<Connection>
- CollectionQuery enum: Match, DateRange, RecentlyAdded/Played, MostPlayed, Genre, Compound
- Builtin collections for Recently Added, 80s/90s Music

Artwork Extraction & Caching:
- ArtworkExtractor using symphonia Visual (musicfs-metadata)
- ArtworkCache with CAS storage + on-demand resize (musicfs-cache)
- ArtType: Front/Back/Other, ArtSize: Thumbnail/Medium/Full

Predictive Prefetching:
- PatternStore tracks access patterns with sequence prediction
- PrefetchEngine listens to FileAccessed events, prefetches predictions
- PrefetchOps exposes /.prefetch/ virtual directory with status/hints

Oracle review fixes applied:
- CollectionStore uses Mutex for thread safety
- FileAccessed event now includes file_id for canonical correlation
- JSON parse warnings in collection deserialization

130 tests pass (15 new tests added)
2026-05-13 07:21:28 +02:00

84 lines
1.5 KiB
TOML

[workspace]
resolver = "2"
members = ["crates/*"]
[workspace.package]
version = "0.1.0"
edition = "2021"
license = "MIT OR Apache-2.0"
rust-version = "1.75"
authors = ["MusicFS Contributors"]
repository = "https://github.com/user/musicfs"
[workspace.dependencies]
# Async runtime
tokio = { version = "1", features = ["full"] }
async-trait = "0.1"
# Error handling
thiserror = "1"
anyhow = "1"
# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"
rmp-serde = "1"
toml = "0.8"
# Concurrent collections
dashmap = "5"
# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# FUSE
fuser = "0.14"
# Database
rusqlite = { version = "0.31", features = ["bundled"] }
sled = "0.34"
# Hashing (per architecture 8.3)
xxhash-rust = { version = "0.8", features = ["xxh64"] }
hex = "0.4"
# Audio metadata
symphonia = { version = "0.5", default-features = false, features = [
"aac", "alac", "flac", "mp3", "ogg", "vorbis", "wav"
] }
# Bytes handling
bytes = "1"
# Platform directories
dirs = "5"
# CLI
clap = { version = "4", features = ["derive"] }
# Testing
tempfile = "3"
# Platform-specific
libc = "0.2"
# Search (Week 8)
tantivy = "0.22"
moka = { version = "0.12", features = ["sync"] }
# Concurrency
parking_lot = "0.12"
# gRPC (Week 8)
tonic = "0.11"
prost = "0.12"
tokio-stream = "0.1"
# Smart Features (Week 9)
image = { version = "0.24", default-features = false, features = ["jpeg", "png"] }
chrono = "0.4"
[workspace.dependencies.tonic-build]
version = "0.11"