[package]
edition = "2024"
name = "rustrtc"
version = "0.4.8"
authors = ["jinti<shenjindi@fourz.cn>"]
build = false
exclude = [
"flamegraph.svg",
"examples",
"tests",
"rustrtc_sfu.png",
"output.ulaw",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A high-performance real-time communication library — WebRTC, RTP/SRTP, T.38 Fax, and RTP Latching"
readme = "README.md"
keywords = [
"rtp",
"srtp",
"webrtc",
"fax",
"turn",
]
categories = ["network-programming"]
license = "MIT"
repository = "https://github.com/restsend/rustrtc"
[features]
crypto-p256 = ["dep:p256"]
default = ["std"]
dtls = []
simulator = []
std = [
"dep:anyhow",
"dep:tokio",
"dep:local-ip-address",
"dep:parking_lot",
"dep:socket2",
"dep:igd",
"dep:rcgen",
"dep:rand",
"crypto-p256",
"dtls",
"bytes/std",
"bytes/serde",
]
t38 = []
t38-interop = []
test-hooks = []
[lib]
name = "rustrtc"
path = "src/lib.rs"
[dependencies.aes]
version = "0.9.2"
[dependencies.aes-gcm]
version = "0.10.3"
features = [
"aes",
"alloc",
]
default-features = false
[dependencies.anyhow]
version = "1"
optional = true
[dependencies.async-trait]
version = "0.1"
[dependencies.base64]
version = "0.22.1"
features = ["alloc"]
default-features = false
[dependencies.bytes]
version = "1"
default-features = false
[dependencies.crc32fast]
version = "1.5.0"
default-features = false
[dependencies.ctr]
version = "0.10"
[dependencies.futures]
version = "0.3.32"
features = ["alloc"]
default-features = false
[dependencies.hmac]
version = "0.13.0"
[dependencies.igd]
version = "0.12"
features = ["aio"]
optional = true
[dependencies.local-ip-address]
version = "0.6"
optional = true
[dependencies.md5]
version = "0.11.0"
package = "md-5"
[dependencies.p256]
version = "0.13.2"
features = [
"alloc",
"ecdh",
"ecdsa",
"pkcs8",
]
optional = true
default-features = false
[dependencies.parking_lot]
version = "0.12"
optional = true
[dependencies.rand]
version = "0.10.1"
optional = true
[dependencies.rcgen]
version = "0.14.8"
features = [
"pem",
"ring",
]
optional = true
default-features = false
[dependencies.serde]
version = "1"
features = [
"derive",
"alloc",
]
default-features = false
[dependencies.serde_json]
version = "1"
features = ["alloc"]
default-features = false
[dependencies.sha1]
version = "0.11.0"
[dependencies.sha2]
version = "0.11.0"
[dependencies.socket2]
version = "0.6"
optional = true
[dependencies.thiserror]
version = "2"
default-features = false
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"sync",
"time",
"net",
"io-util",
]
optional = true
[dependencies.tracing]
version = "0.1"
features = ["attributes"]
default-features = false
[dev-dependencies.axum]
version = "0.8"
features = ["multipart"]
[dev-dependencies.dtls]
version = "0.17.1"
[dev-dependencies.env_logger]
version = "0.11.10"
[dev-dependencies.hyper-rustls]
version = "0.27"
features = [
"http1",
"tls12",
"logging",
"native-tokio",
]
default-features = false
[dev-dependencies.indicatif]
version = "0.18.4"
[dev-dependencies.reqwest]
version = "0.13"
features = [
"json",
"charset",
"http2",
"system-proxy",
"rustls-no-provider",
]
default-features = false
[dev-dependencies.rustls]
version = "0.23"
features = [
"ring",
"tls12",
"logging",
]
default-features = false
[dev-dependencies.serial_test]
version = "3.4.0"
[dev-dependencies.socket2]
version = "0.6"
[dev-dependencies.tokio-rustls]
version = "0.26"
features = [
"ring",
"tls12",
"logging",
]
default-features = false
[dev-dependencies.tower-http]
version = "0.6"
features = ["fs"]
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dev-dependencies.turn]
version = "0.17.1"
[dev-dependencies.webrtc]
version = "0.17.1"
[dev-dependencies.webrtc-util]
version = "0.17.1"
[profile.bench]
lto = "fat"
codegen-units = 1
[profile.dev]
split-debuginfo = "unpacked"
[profile.release]
lto = "fat"
codegen-units = 1
strip = "symbols"
[profile.test]
split-debuginfo = "unpacked"