[package] name = "pmoparadise" version = "0.1.0" edition = "2021" authors = ["PMOMusic Contributors"] description = "Rust client for Radio Paradise streaming service" license = "MIT OR Apache-2.0" repository = "https://github.com/yourusername/pmomusic" keywords = ["radio", "paradise", "streaming", "music", "flac"] categories = ["multimedia", "api-bindings"] [dependencies] # HTTP client pour les requêtes à l'API Radio Paradise reqwest = { version = "0.12", features = ["json", "stream"] } # Gestion asynchrone tokio = { version = "1", features = ["full"] } # Sérialisation/Désérialisation JSON serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" # Gestion des erreurs thiserror = "1.0" anyhow = "1.0" # Streaming de bytes bytes = "1.5" futures = "0.3" # Logging tracing = "0.1" # URL manipulation url = "2.5" # Per-track feature dependencies claxon = { version = "0.4", optional = true } hound = { version = "3.5", optional = true } tempfile = { version = "3.8", optional = true } # UPnP Media Server dependencies pmoupnp = { path = "../pmoupnp", optional = true } pmoserver = { path = "../pmoserver", optional = true } pmodidl = { path = "../pmodidl", optional = true } uuid = { version = "1.18", optional = true } # Common music source traits pmosource = { path = "../pmosource" } # Playlist management for FIFO support pmoplaylist = { path = "../pmoplaylist" } # Cache support (OBLIGATOIRE - architecture refactorisée) pmocovers = { path = "../pmocovers" } pmoaudiocache = { path = "../pmoaudiocache" } # OpenAPI/Swagger support (pour pmoserver extension) utoipa = { version = "5.4.0", optional = true } axum = { version = "0.8.4", optional = true } [features] default = ["metadata-only"] # Mode métadonnées seules (pas de décodage FLAC) metadata-only = [] # Active le décodage FLAC par-track per-track = ["dep:claxon", "dep:hound", "dep:tempfile"] # Active l'API REST pmoserver pmoserver = ["dep:pmoserver", "dep:utoipa", "dep:axum"] # Active le media server UPnP (includes pmoserver) mediaserver = ["dep:pmoupnp", "dep:pmodidl", "dep:uuid", "pmoserver"] # Feature pour activer le support serveur (cache registry) server = ["pmosource/server"] # Feature cache (deprecated - toujours actif maintenant) cache = [] [dev-dependencies] # Tests tokio-test = "0.4" wiremock = "0.6" # Pour les exemples avec logging tracing-subscriber = "0.3" # Pour l'exemple with_cache pmocovers = { path = "../pmocovers" } pmoaudiocache = { path = "../pmoaudiocache" } [[example]] name = "now_playing" path = "examples/now_playing.rs" [[example]] name = "stream_block" path = "examples/stream_block.rs" [[example]] name = "extract_track" path = "examples/extract_track.rs" required-features = ["per-track"] [[example]] name = "upnp_mediaserver" path = "examples/upnp_mediaserver.rs" required-features = ["mediaserver"] [[example]] name = "with_cache" path = "examples/with_cache.rs" required-features = ["cache"]