stund
A minimal asynchronous STUN server implementation.
The server implements the minimal necessary functionality from RFC 8489, namely the Binding Request.
The server is both IPv6 and IPv4 capable as well as operating in both TCP/UDP modes. When listening on IPv6 address, the server is capable of handling IPv6/IPv4 clients.
Running
To try out the server, just run:
$ cargo run
By default, the server will receive requests from any network hosts using IPv6,
this can be adjusted by adding a --no-ipv4
option to disable IPv6 or manually
specifying the host:port
pair to listen on:
$ cargo run -- 127.0.0.1:3478
Testing
To verify the server functions properly, the following tools may be used:
- Trickle ICE tester from WebRTC github samples
- IceTest.Info
stunclient
package from stunprotocol.org. Note: the server will report an error due to stunclient sending additional attributes not recognized by this implementation
Testings results are also recorded as Wireshark captures and are found in the pcaps
directory.
Description
Languages
Rust
100%