Files
pmomusic/pmoradiofrance/Cargo.toml
Eric Coissac 5c5e1d534b feat: Implémentation complète de la source Radio France avec intégration UPnP et serveur HTTP
Ajout de la source Radio France avec :
- Implémentation du trait MusicSource pour l'intégration UPnP
- Routes HTTP API REST pour l'accès aux stations et flux AAC
- Proxy streaming avec tracking des connexions
- Génération dynamique de l'arborescence UPnP
- Cache multi-niveaux (stations, métadonnées, covers)
- Support des ~70 stations (standalone, groupes, radios ICI)

Fichiers créés :
- pmoradiofrance/src/source.rs (implémentation MusicSource)
- pmoradiofrance/src/server_ext.rs (routes HTTP et proxy streaming)
- pmoradiofrance/assets/radiofrance-logo.webp (logo placeholder)

Fichiers modifiés :
- pmoradiofrance/src/lib.rs (re-exports et modules)
- pmoradiofrance/Cargo.toml (dépendances server)
- Cargo.toml (workspace)
- pmomediaserver/Cargo.toml (feature radiofrance)
- PMOMusic/Cargo.toml (feature radiofrance)
- PMOMusic/src/main.rs (enregistrement automatique)

Tests et validation : compilation OK, pattern respecté, feature-gating cohérent
2026-01-23 12:20:43 +01:00

90 lines
2.4 KiB
TOML

[package]
name = "pmoradiofrance"
version = "0.1.0"
edition = "2021"
authors = ["PMOMusic Contributors"]
description = "Rust client for Radio France streaming services"
license = "MIT OR Apache-2.0"
repository = "https://github.com/yourusername/pmomusic"
keywords = ["radio", "france", "streaming", "music", "aac"]
categories = ["multimedia", "api-bindings"]
[dependencies]
# HTTP client for Radio France API requests
reqwest = { version = "0.12", features = ["json"] }
# Async runtime
tokio = { workspace = true }
# Serialization/Deserialization
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
# Helpers
chrono = { workspace = true }
async-trait = { workspace = true }
# Error handling
thiserror = { workspace = true }
anyhow = { workspace = true }
# Logging
tracing = { workspace = true }
# URL manipulation
url = "2.5"
# HTML scraping for station discovery
scraper = "0.22"
regex = "1.11"
# Common music source traits
pmosource = { path = "../pmosource" }
# DIDL-Lite structures (for playlist support)
pmodidl = { path = "../pmodidl", optional = true }
# Configuration support
pmoconfig = { path = "../pmoconfig", optional = true }
# Cache support
pmocovers = { path = "../pmocovers", optional = true }
pmoaudiocache = { path = "../pmoaudiocache", optional = true }
# Playlist management for FIFO support
pmoplaylist = { path = "../pmoplaylist", optional = true }
# Server integration (optional)
pmoserver = { path = "../pmoserver", optional = true }
pmoupnp = { path = "../pmoupnp", optional = true }
axum = { workspace = true, optional = true }
futures = { workspace = true, optional = true }
[features]
default = ["pmoconfig"]
# Feature for pmoconfig support
pmoconfig = ["dep:pmoconfig"]
# Feature for cache support
cache = ["dep:pmocovers", "dep:pmoaudiocache"]
# Feature for playlist/FIFO support
playlist = ["dep:pmoplaylist", "dep:pmodidl"]
# Feature for logging (tracing)
logging = []
# Feature for server support (MusicSource + HTTP API routes)
server = ["pmosource/server", "pmoconfig", "cache", "playlist", "dep:pmoserver", "dep:pmoupnp", "dep:axum", "dep:futures"]
# Full feature set
full = ["server", "logging"]
[dev-dependencies]
tokio-test = { workspace = true }
tracing-subscriber = { workspace = true }
[[example]]
name = "discover_stations"
path = "examples/discover_stations.rs"
[[example]]
name = "live_metadata"
path = "examples/live_metadata.rs"