d5ef68c9c9
New files: - musicfs-core/src/config.rs: Config, OriginConfig, HealthConfig - musicfs-origins/src/registry.rs: OriginRegistry with watch cleanup - musicfs-origins/src/router.rs: Priority router with (priority, latency) ordering - musicfs-origins/src/health.rs: HealthMonitor with per-origin-type thresholds - musicfs-origins/src/failover.rs: FailoverExecutor with NFR-7.3 backoff Oracle fixes applied: - Per-OriginType threshold: Local=1, Remote=3 (check_one uses threshold_for) - AllOriginsUnhealthy event: Added to events.rs, emitted in select_with_fallback - Unified OriginType: Removed duplicate from traits.rs, use musicfs_core::OriginType - Watch handle cleanup: Tracked and dropped on unregister() - Retry delays: 100ms, 500ms, 2000ms (NFR-7.3 compliant) Tests: 91 pass (+20 new)
62 lines
1.1 KiB
TOML
62 lines
1.1 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"
|