ffbb238633
- Add musicfs-cas crate: CasStore, ChunkHash, FileReader, ChunkManifest - Add LruEviction policy to musicfs-cache for cache size management - Integrate FileReader into FUSE filesystem for actual file reads - Use xxHash64 for content hashing, sled for index, msgpack serialization - Default cache path: ~/.cache/musicfs/chunks/ with 256 subdirs sharding - 20 new tests (14 CAS unit + 3 integration + 3 eviction), 54 total
55 lines
1.0 KiB
TOML
55 lines
1.0 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"
|
|
|
|
# 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"
|
|
|
|
# Testing
|
|
tempfile = "3"
|