[package] name = "stream_server" version = "0.2.0" edition = "2021" authors = ["Stream Server Team "] description = "High-performance audio streaming server with advanced features" license = "MIT" repository = "https://github.com/your-org/veza-stream-server" default-run = "stream_server" [[bin]] name = "stream_server" path = "src/main.rs" [[bin]] name = "simple_stream_server" path = "src/simple_stream_server.rs" [dependencies] # Core web framework axum = { version = "0.8", features = ["macros", "multipart", "ws"] } # ALIGNED WITH ORIGIN: Tokio 1.35 (was 1.0) tokio = { version = "1.35", features = ["full"] } tokio-tungstenite = "0.21" tower = { version = "0.4", features = ["full"] } tower-http = { version = "0.5", features = ["fs", "cors", "compression-gzip", "compression-br", "trace", "timeout"] } hyper = { version = "1.0", features = ["full"] } # Production performance & concurrency dashmap = "6.1" parking_lot = "0.12" rayon = "1.10" crossbeam = "0.8" flume = "0.11" # Serialization serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" toml = "0.8" bincode = "1.3" # Async utilities futures = "0.3" futures-util = "0.3" async-channel = "2.1" # Logging and tracing tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter", "json", "chrono"] } tracing-appender = "0.2" # Audio processing & codecs symphonia = { version = "0.5", features = ["all"] } hound = "3.5" minimp3 = "0.5" rubato = "0.15" # opus = "0.3" # Requires cmake # lame = "0.1" # May require native dependencies # fdkaac = { version = "0.7", optional = true } # Not available on crates.io # Streaming protocols # webrtc = "0.7" # Complex native dependencies # webrtc-util = "0.7" m3u8-rs = "5.0" # FFT and signal processing rustfft = "6.2" apodize = "1.0" dasp = "0.11" # Compression brotli = "3.4" lz4_flex = "0.11" zstd = "0.13" # Database & Cache sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres", "chrono", "uuid"] } redis = { version = "0.32", features = ["tokio-comp", "connection-manager"] } deadpool-redis = "0.15" # Metadata extraction id3 = "1.13" metaflac = "0.2" # Memory management and optimization bytes = "1.11" memmap2 = "0.9" # HTTP client reqwest = { version = "0.11", features = ["json", "stream"] } # Utilities veza-common = { path = "../veza-common" } uuid = { version = "1.6", features = ["v4", "serde"] } chrono = { version = "0.4", features = ["serde"] } thiserror = "2.0" anyhow = "1.0" async-trait = "0.1" # Cryptography and security sha2 = "0.10" hmac = "0.12" jsonwebtoken = { version = "10", features = ["aws_lc_rs"] } bcrypt = "0.17" ring = "0.17" # Configuration clap = { version = "4.4", features = ["derive"] } # Metrics and monitoring prometheus = "0.14" metrics-exporter-prometheus = "0.13" metrics = "0.22" # File watching notify = "6.1" # Rate limiting governor = "0.6" # Environment variables # SECURITY(LOW-003): Updated from deprecated 0.15 to maintained dotenvy fork dotenvy = "0.15" # Regex regex = "1.10" # Random number generation rand = "0.8" # System information sysinfo = "0.30" num_cpus = "1.0" # LRU Cache lru = "0.12" # Process management daemonize = "0.5" # Lazy static initialization once_cell = "1.19" lazy_static = "1.4" # Validation et sécurité subtle = "2.4" mime_guess = "2.0" tokio-util = { version = "0.7", features = ["codec"] } headers = "0.4" axum-extra = { version = "0.9", features = ["typed-header"] } hex = "0.4" url = "2.5" # gRPC support tonic = { version = "0.11", features = ["transport", "prost"] } prost = "0.12" prost-types = "0.12" tokio-stream = { version = "0.1", features = ["sync"] } # RabbitMQ client (ORIGIN Architecture - Event Bus) lapin = "2.3" [build-dependencies] tonic-build = "0.11" [dev-dependencies] tokio-test = "0.4" tempfile = "3.8" criterion = "0.5" [[bench]] name = "http_range_bench" harness = false [profile.release] opt-level = 3 lto = true codegen-units = 1 panic = "abort" strip = true [profile.dev] opt-level = 0 debug = true overflow-checks = true [features] default = ["tracing"] metrics = [] tracing = ["tracing-subscriber/json"] redis = [] jaeger = []