4个稳定版本
1.2.2 | 2023年12月24日 |
---|---|
1.2.1 | 2023年6月24日 |
1.1.0 | 2023年1月7日 |
1.0.1 | 2023年1月1日 |
在网络编程中排名382
每月下载量31次
用于turn-server
230KB
2K SLoC
由❤️ Rust实现的TURN服务器
RFC: https://datatracker.ietf.org/doc/html/rfc8656
这是一个纯Rust实现的TURN服务器。与coturn相比,它的优势在于提供了更好的性能。它可以以5Gib/s的解码速度在单线程中运行,并且转发延迟小于35微秒。然而,它并不提供coturn那样的丰富功能支持,这个项目最适合在stun/turn服务器在webrtc中使用的情况下。
谁在使用它?
Psyai
(turn-rs已稳定运行一年多,没有出现任何故障或中断时间。)Faszialespecialist
目录
功能
- 仅支持长期认证机制。
- 配置文件中可以使用静态认证列表。
- 始终分配虚拟端口,不占用真实系统端口。
- 传输层支持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
自定义配置文件通过-v
覆盖了镜像内部的/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。
依赖项
~2–2.7MB
~48K SLoC