4 releases (stable)
|1.0.2||Jan 22, 2023|
|1.0.1||Jan 12, 2023|
|1.0.0||Jan 7, 2023|
|0.2.0||Jan 1, 2023|
#253 in Network programming
A pure rust-implemented turn server, different from coturn, provides a more flexible external control API and provides the same performance and memory footprint, this project is most compatible with the scenario of using stun/turn server in webrtc.
Who uses it?
Table of contents
- external controller api. (
- webhooks api. (
- only long-term authentication is supported.
- static identity in configuration file.
- only use udp protocol.
- virtual port support. (
allocate request does not allocate real udp ports)
stun, fast and zero-cost stun message decoder and encoder. (
turn, a library for handling turn sessions. (
turn-server, implementation of turn server based on turn library. (
cargo install turn-server
Start with configuration file:
Please check the example configuration file for details: turn_server.toml
docker pull quasipaa/turn-server
The custom configuration file overrides the
/etc/turn-server/config.toml path inside the image through
This will compile the project and install and start the service.
You need to install the Rust toolchain, if you have already installed it, you can skip it, Install Rust, then get the source code:
git clone https://github.com/mycrl/turn-rs
Compile the entire workspace in release mode:
cd turn-rs cargo build --release
After the compilation is complete, you can find the binary file in the "target/release" directory.
stun_decoder/channel_bind ...[time: 20.606 ns] ...[thrpt: 4.8812 GiB/s] stun_decoder/binding_request ...[time: 20.862 ns] ...[thrpt: 4.2856 GiB/s]
GPL Copyright (c) 2022 Mr.Panda.