Files
pmomusic/Cargo.toml
Eric Coissac 306e691c61 Refactor WebRenderer to use server-side streaming with OGG-FLAC sink
This commit refactors the WebRenderer to use a server-side streaming architecture with OGG-FLAC sink instead of the previous WebSocket-based approach. The changes include:

- Replaced WebSocket communication with HTTP streaming using DirectOggFlacSink
- Implemented a new pipeline architecture with dedicated handlers for UPnP commands
- Added new modules for registration, registry, and streaming
- Updated the renderer to work with a pipeline control system
- Removed old WebSocket session management
- Added support for HTTP streaming with gapless playback
- Updated dependencies and features for the new architecture

The WebRenderer now acts as a MediaRenderer UPnP device that serves audio streams via HTTP endpoints, with commands relayed to the audio pipeline through a new control system.
2026-02-26 20:05:42 +01:00

62 lines
1.2 KiB
TOML

[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"