[workspace]
resolver = "3"
members = [
    "PMOMusic",
    "pmoupnp",
    "pmomediarenderer",
    "pmowebrenderer",
    "pmomediaserver",
    "pmoconfig",
    "pmoutils",
    "pmodidl",
    "pmoserver",
    "pmoapp",
    "pmocache",
    "pmocovers",
    "pmoaudiocache",
    "pmoaudio",
    "pmoaudio-ext",
    "pmoqobuz",
    "pmoparadise",
    "pmoradiofrance",
    "pmosource",
    "pmoplaylist",
    "pmoflac",
    "pmometadata",
    "pmocontrol",
]

[workspace.dependencies]
# Core
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"

# Async runtime
tokio = { version = "1.35", features = ["full"] }
tokio-util = { version = "0.7", features = ["io"] }
async-trait = "0.1"

# Error handling
anyhow = "1.0"
thiserror = "2.0"

# Logging
tracing = "0.1.41"
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }

# HTTP/XML
reqwest = { version = "0.12", default-features = false }
ureq = "3.1"
quick-xml = { version = "0.38", features = ["serialize"] }
axum = "0.8.4"
futures = "0.3"

# Utilities
chrono = { version = "0.4", features = ["serde"] }
uuid = { version = "1.18", features = ["v4"] }
crossbeam-channel = "0.5"
rand = "0.9"

# Testing
tokio-test = "0.4"