[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" serde_yaml = "0.9" # Helpers chrono = { version = "0.4", features = ["serde"] } async-trait = "0.1" sha2 = "0.10" hex = "0.4" tokio-util = { version = "0.7", features = ["io"] } async-stream = "0.3" rusqlite = { version = "0.37", features = ["bundled"] } # Gestion des erreurs thiserror = "1.0" anyhow = "1.0" # Streaming de bytes bytes = "1.5" futures = "0.3" flacenc = "0.4" # Logging tracing = "0.1" # URL manipulation url = "2.5" # Audio decoding/encoding symphonia = { version = "0.5", features = ["all"] } # Audio decoding - claxon for FLAC streaming claxon = "0.4" # Per-track feature dependencies hound = { version = "3.5", optional = true } tempfile = { version = "3.8", optional = true } # Common music source traits pmosource = { path = "../pmosource" } # Playlist management for FIFO support pmoplaylist = { path = "../pmoplaylist" } pmoconfig = { path = "../pmoconfig" } # Cache support (OBLIGATOIRE - architecture refactorisée) pmocovers = { path = "../pmocovers" } pmoaudiocache = { path = "../pmoaudiocache" } # pmoserver extension support pmoserver = { path = "../pmoserver", optional = true } 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 l'extraction par-track (WAV export, etc.) per-track = ["dep:hound", "dep:tempfile"] # Active l'API REST pmoserver pmoserver = ["dep:pmoserver", "dep:utoipa", "dep:axum", "server"] # 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 = "with_cache" path = "examples/with_cache.rs" required-features = ["cache"]