[package]
name = "pmoaudiocache"
version = "0.1.0"
edition = "2021"

[dependencies]
# Cache générique
pmocache = { path = "../pmocache" }

# DIDL-Lite pour UPnP
pmodidl = { path = "../pmodidl" }

# Streaming FLAC asynchrone
pmoflac = { path = "../pmoflac" }
pmometadata = { path = "../pmometadata" }

# Base de données
rusqlite = { version = "0.37", features = ["bundled"] }
chrono = { workspace = true }

# Métadonnées audio
lofty = "0.22"

# Outils de streaming
futures-util = "0.3"
bytes = "1.0"

# Utilitaires
anyhow = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
quick-xml = { workspace = true }
paste = "1.0"
async-trait = { workspace = true }

# Async
tokio = { workspace = true }

# Singleton
once_cell = "1.20"

# Serveur HTTP (optionnel pour l'extension)
pmoserver = { path = "../pmoserver", optional = true }
pmoconfig = { path = "../pmoconfig", optional = true }
axum = { version = "0.8", optional = true }
utoipa = { version = "5.3", features = ["axum_extras"], optional = true }

tracing = { workspace = true }

[dev-dependencies]
tracing-subscriber = "0.3"
tempfile = "3"

[features]
default = ["pmoserver"]
pmoconfig = ["dep:pmoconfig", "pmocache/pmoconfig"]
pmoserver = ["pmoconfig", "dep:pmoserver", "dep:axum", "dep:utoipa", "pmocache/pmoserver", "pmocache/openapi"]
