[package] name = "str0m" version = "0.6.3" authors = ["Martin Algesten ", "Hugo Tunius ", "Davide Bertola "] description = "WebRTC library in Sans-IO style" license = "MIT OR Apache-2.0" repository = "https://github.com/algesten/str0m" readme = "README.md" keywords = ["webrtc", "streaming", "video", "audio", "media"] categories = ["web-programming", "multimedia", "network-programming"] edition = "2021" exclude = ["/cargo_deny.sh", "/deny.toml", "/run-fuzz.sh"] # MSRV rust-version = "1.65" # Notes on OpenSSL # - Vendored (static link source build) ensures version consistency and easier # to build but increases size. # - Non-vendored (dynamic link) uses system libraries, reducing size but may # cause compatibility issues. # Choose based on security and footprint needs. # For large deployments sharing OS images, OS updates can be easier for # security patching than updating statically linked software. [features] default = ["openssl", "vendored", "sha1"] openssl = ["dep:openssl", "dep:openssl-sys", "dep:libc"] vendored = ["openssl?/vendored"] # Without the sha1 feature, str0m uses the openssl sha1 impl which is slower. sha1 = ["dep:sha1"] _internal_dont_use_log_stats = [] _internal_test_exports = [] [dependencies] thiserror = "1.0.69" tracing = "0.1.37" fastrand = "2.0.1" once_cell = "1.17.0" sctp-proto = "0.3.0" combine = "4.6.6" # Sadly no DTLS support in rustls. openssl = { version = ">=0.10.66", optional = true } openssl-sys = { version = "0.9.80", optional = true } libc = { version = "0.2", optional = true } # STUN hmac = "0.12.1" crc = "3.0.0" serde = { version = "1.0.152", features = ["derive"] } [target.'cfg(unix)'.dependencies] sha1 = { version = "0.10.6", features = ["asm"], optional = true } # The ASM feature is broken on windows. Unclear where in the rust-crypto project # we're supposed to check when it gets sorted out. [target.'cfg(windows)'.dependencies] sha1 = { version = "0.10.6", optional = true } [dev-dependencies] rouille = { version = "3.5.0", features = ["ssl"] } serde_json = "1.0" tracing-subscriber = { version = "0.3.16", features = ["env-filter", "std"] } systemstat = "0.2.2" # dummy package that enables "_internal_test_exports" _str0m_test = { path = "_str0m_test" } # This is to ensure MSRV 1.65 # Remove when we move MSRV time = "=0.3.23" pcap-file = "2.0.0" url = "=2.5.0"