veza/veza-stream-server/Cargo.toml

190 lines
3.9 KiB
TOML
Raw Normal View History

2025-12-03 19:36:56 +00:00
[package]
name = "stream_server"
version = "0.2.0"
edition = "2021"
authors = ["Stream Server Team <team@streamserver.com>"]
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.7", features = ["macros", "multipart", "ws"] }
axum-tungstenite = "0.1"
# 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 = "5.5"
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"
# 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 (disabled temporarily for compilation)
# 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.7", features = ["runtime-tokio-rustls", "postgres", "chrono", "uuid"] }
redis = { version = "0.25", features = ["tokio-comp", "connection-manager"] }
deadpool-redis = "0.15"
# Metadata extraction
id3 = "1.13"
metaflac = "0.2"
# Memory management and optimization
bytes = "1.5"
memmap2 = "0.9"
# HTTP client
reqwest = { version = "0.11", features = ["json", "stream"] }
# Utilities
uuid = { version = "1.6", features = ["v4", "serde"] }
chrono = { version = "0.4", features = ["serde"] }
thiserror = "1.0"
anyhow = "1.0"
# Cryptography and security
sha2 = "0.10"
hmac = "0.12"
jsonwebtoken = "9.2"
bcrypt = "0.15"
ring = "0.17"
# Configuration
clap = { version = "4.4", features = ["derive"] }
# Metrics and monitoring
prometheus = "0.13"
metrics-exporter-prometheus = "0.13"
metrics = "0.22"
# File watching
notify = "6.1"
# Rate limiting
governor = "0.6"
# Environment variables
dotenv = "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 = []