[package]
name = "turn-server"
version = "4.1.2"
edition = "2024"
authors = ["mycrl <lepidodendraceae@gmail.com>"]
description = "A pure rust-implemented turn server."
readme = "./README.md"
homepage = "https://github.com/mycrl/turn-rs"
repository = "https://github.com/mycrl/turn-rs"
license = "MIT"
keywords = ["stun", "webrtc", "turn", "turn-server"]
categories = ["parsing", "network-programming"]
[dependencies]
ahash = "0.8"
anyhow = "1.0"
axum = { version = "0.8", optional = true }
axum-server = { version = "0.8", features = ["tls-rustls"], optional = true }
bytes = "1"
clap = { version = "4", features = ["derive"] }
crossbeam-channel = "0.5"
parking_lot = "0.12"
log = "0.4"
mimalloc = { version = "0.1", default-features = false }
serde = { version = "1", features = ["derive"] }
serde_json = { version = "1.0", optional = true }
toml = "0.9.6"
fern = { version = "0.7.1", features = ["date-based", "syslog-6"] }
tokio = { version = "1", features = ["full"] }
tokio-rustls = { version = "0.26", features = ["aws-lc-rs"], optional = true }
num_cpus = "1.17.0"
tonic = { version = "0.14", features = ["deflate"], optional = true }
sdk = { path = "./sdk", version = "0.3.0", package = "turn-server-sdk", optional = true }
prometheus = { version = "0.14.0", optional = true }
url = { version = "2.5", optional = true }
base64 = "0.22"
num_enum = "0.7"
aws-lc-rs = { version = "1.16", features = ["prebuilt-nasm"] }
md-5 = "0.10"
crc32fast = "1.5"
rand = "0.9"
[dev-dependencies]
criterion = { version = "0.7", features = ["async_tokio"] }
pollster = "0.4.0"
proptest = "1.4"
[[bench]]
name = "stun"
harness = false
[features]
default = ["udp", "tcp", "ssl", "api", "prometheus"]
tcp = []
udp = []
ssl = ["dep:tokio-rustls", "tonic/tls-aws-lc", "dep:axum-server"]
api = ["dep:tonic", "dep:url", "dep:sdk"]
prometheus = ["dep:axum", "dep:serde_json", "dep:prometheus"]
[profile.release]
debug-assertions = false
overflow-checks = false
strip = "debuginfo"
panic = "abort"
debug = false
lto = true
codegen-units = 1
[workspace]
resolver = "2"
members = ["./", "./sdk"]