A turn server implemented pure in rust. Compared with coturn, the advantage is that it provides better performance. It can reach a decoding speed of 5Gib/s in a single thread, and the forwarding delay is less than 35 microseconds. However, it does not provide the same With rich functional support like coturn, this project is most suitable for scenarios where stun/turn servers are used in webrtc.
Who uses it?
Psyai
(turn-rs has been in service for more than a year without any faults or downtime.)Faszialespecialist
Table of contents
Features
- Only long-term authentication mechanisms are supported.
- Static authentication lists can be used in configuration files.
- Only virtual ports are always allocated and no real system ports are occupied.
- The transport layer supports tcp and udp protocols, and supports binding multiple network cards or interfaces.
- Provides a simple command line tool to manage and monitor the turn server through the command line tool graphical interface. (
turn-cli
) - The GRPC interface can be used so that the turn server can proactively notify the external service of events and use external authentication mechanisms, and the external can also proactively control the turn server and manage the session. (
proto
)
Usage
The versions on crates.io and docker may be very outdated. It is recommended to compile directly from the github source code.
Start with configuration file:
Please check the example configuration file for details: turn_server.toml
Docker
The custom configuration file overrides the /etc/turn-server/config.toml
path inside the image through -v
.
Linux service
./install-service.sh
This will compile the project and install and start the service.
Building
Prerequisites
You need to install the Rust toolchain, if you have already installed it, you can skip it, Install Rust, then get the source code:
Build workspace
Compile the entire workspace in release mode:
After the compilation is complete, you can find the binary file in the "target/release"
directory.
License
GPL3.0 Copyright (c) 2022 Mr.Panda.