#stun #turn #web-rtc #codec

faster-stun

快速且零成本的Stun消息解码器和编码器

4个版本 (稳定)

1.0.2 2023年12月24日
1.0.1 2023年6月24日
1.0.0 2023年1月7日
0.1.0 2023年1月1日

#3 in #turn

Download history 116/week @ 2024-04-06 38/week @ 2024-04-13 64/week @ 2024-04-20 68/week @ 2024-04-27 55/week @ 2024-05-04 102/week @ 2024-05-11 159/week @ 2024-05-18 280/week @ 2024-05-25 254/week @ 2024-06-01 130/week @ 2024-06-08 103/week @ 2024-06-15 66/week @ 2024-06-22 132/week @ 2024-06-29 22/week @ 2024-07-06 62/week @ 2024-07-13 130/week @ 2024-07-20

每月360次下载
用于 2 crates

GPL-2.0-or-later

95KB
946


由❤️ Rust实现的TURN服务器
RFC: https://datatracker.ietf.org/doc/html/rfc8656


一个纯Rust实现的TURN服务器。与coturn相比,优点是提供了更好的性能。它可以达到单线程的5Gib/s解码速度,转发延迟小于35微秒。然而,它不提供coturn那样的丰富功能支持,该项目最适用于Stun/TURN服务器在webrtc中使用的情况。

谁在使用它?

目录

功能

  • 仅支持长期认证机制。
  • 配置文件中可以使用静态认证列表。
  • 始终分配虚拟端口,不占用真实系统端口。
  • 传输层支持TCP和UDP协议,并支持绑定多个网络卡或接口。
  • 提供了一个简单的命令行工具,可以通过命令行工具图形界面管理和监控TURN服务器。 (turn-cli)
  • 可以使用GRPC接口,使TURN服务器能够主动通知外部服务事件,并使用外部认证机制,外部也可以主动控制TURN服务器和管理会话。 (proto)

用法

crates.io和Docker上的版本可能非常过时。建议直接从GitHub源代码编译。

cargo install turn-server

使用配置文件启动

turn-server --config=/etc/turn_server/config.toml

请查看示例配置文件以获取详细信息: turn_server.toml

Docker

// docker hub
docker pull quasipaa/turn-server
// github packages
docker pull ghcr.io/mycrl/turn-server

自定义配置文件通过-覆盖了镜像内部的/etc/turn-server/config.toml路径。

Linux服务

./install-service.sh

这将编译项目并安装和启动服务。

构建

先决条件

您需要安装Rust工具链,如果您已经安装了它,则可以跳过,安装Rust,然后获取源代码

git clone https://github.com/mycrl/turn-rs

构建工作空间

以发布模式编译整个工作空间

cd turn-rs
cargo build --release

编译完成后,您可以在"target/release"目录中找到二进制文件。

许可协议

GPL3.0 版权 (c) 2022 Mr.Panda.

依赖项

~1–1.5MB
~31K SLoC