[package]
edition = "2024"
rust-version = "1.95.0"
name = "srt-runtime"
version = "0.4.0"
authors = ["Alex Fishlock <alex.fishlock@racingjag.com>"]
build = false
exclude = ["docs/**"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "SRT (Secure Reliable Transport, draft-sharabayko-srt-01) packet codecs + sans-IO HSv5 Caller-Listener and Rendezvous handshake state machines, an ARQ reliability engine, a TSBPD delivery scheduler, LiveCC packet pacing, FileCC window-based congestion control, optional (crypto feature) payload encryption, and an optional (tokio feature) async UDP socket adapter; no_std core."
readme = "README.md"
keywords = [
"srt",
"packet",
"sans-io",
"transport",
"streaming",
]
categories = [
"parser-implementations",
"multimedia",
"network-programming",
"no-std",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/fishloa/rust-broadcast"
resolver = "2"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
crypto = [
"dep:aes",
"dep:ctr",
"dep:aes-kw",
"dep:pbkdf2",
"dep:hmac",
"dep:sha1",
]
default = ["std"]
serde = ["dep:serde"]
std = [
"broadcast-common/std",
"thiserror/std",
]
tokio = [
"dep:tokio",
"std",
]
[lib]
name = "srt_runtime"
path = "src/lib.rs"
[[test]]
name = "arq_recovery"
path = "tests/arq_recovery.rs"
[[test]]
name = "crypto_handshake"
path = "tests/crypto_handshake.rs"
[[test]]
name = "crypto_vectors"
path = "tests/crypto_vectors.rs"
[[test]]
name = "filecc_congestion"
path = "tests/filecc_congestion.rs"
[[test]]
name = "handshake_round_trip"
path = "tests/handshake_round_trip.rs"
[[test]]
name = "io_loopback"
path = "tests/io_loopback.rs"
[[test]]
name = "io_loss_recovery"
path = "tests/io_loss_recovery.rs"
[[test]]
name = "km_refresh"
path = "tests/km_refresh.rs"
[[test]]
name = "label_coverage"
path = "tests/label_coverage.rs"
[[test]]
name = "livecc_pacing"
path = "tests/livecc_pacing.rs"
[[test]]
name = "no_panic"
path = "tests/no_panic.rs"
[[test]]
name = "non_exhaustive_coverage"
path = "tests/non_exhaustive_coverage.rs"
[[test]]
name = "rendezvous_round_trip"
path = "tests/rendezvous_round_trip.rs"
[[test]]
name = "tsbpd_delivery"
path = "tests/tsbpd_delivery.rs"
[dependencies.aes]
version = "0.8"
optional = true
default-features = false
[dependencies.aes-kw]
version = "0.2"
optional = true
default-features = false
[dependencies.broadcast-common]
version = "9.3"
default-features = false
[dependencies.ctr]
version = "0.9"
optional = true
default-features = false
[dependencies.hmac]
version = "0.12"
optional = true
default-features = false
[dependencies.pbkdf2]
version = "0.12"
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = [
"derive",
"alloc",
]
optional = true
default-features = false
[dependencies.sha1]
version = "0.10"
optional = true
default-features = false
[dependencies.thiserror]
version = "2"
default-features = false
[dependencies.tokio]
version = "1"
features = [
"net",
"io-util",
"rt",
"macros",
"time",
"sync",
]
optional = true
default-features = false
[dev-dependencies.serde_json]
version = "1.0"
[dev-dependencies.tokio]
version = "1"
features = [
"net",
"io-util",
"rt",
"macros",
"time",
"sync",
]
default-features = false