Session Traversal Utilities for NAT (STUN) https://www.rfc-editor.org/rfc/rfc8489.html
Traversal Using Relays around NAT (TURN) https://www.rfc-editor.org/rfc/rfc8656.html
Interactive Connectivity Establishment (ICE) https://www.rfc-editor.org/rfc/rfc8445.html
coturn is a free open source implementation of TURN and STUN Server.
The TURN Server is a VoIP media traffic NAT traversal server and gateway.
https://github.com/coturn/coturn
Violet - Lightweight STUN/TURN server
Violet is a lightweight STUN/TURN server (RFC8489 and RFC8656) written in C without dependencies, based on libjuice.
https://github.com/paullouisageneau/violet
Nice: GLib ICE library
https://github.com/libnice/libnice
libjuice - UDP Interactive Connectivity Establishment
libjuice (JUICE is a UDP Interactive Connectivity Establishment library) allows to open bidirectionnal User Datagram Protocol (UDP) streams with Network Address Translator (NAT) traversal.
The library is a simplified implementation of the Interactive Connectivity Establishment (ICE) protocol, client-side and server-side, written in C without dependencies for POSIX platforms (including GNU/Linux, Android, Apple macOS and iOS) and Microsoft Windows. The client supports only a single component over UDP per session in a standard single-gateway network topology, as this should be sufficient for the majority of use cases nowadays.
https://github.com/paullouisageneau/libjuice
libdatachannel - C/C++ WebRTC network library
libdatachannel is a standalone implementation of WebRTC Data Channels, WebRTC Media Transport, and WebSockets in C++17 with C bindings for POSIX platforms (including GNU/Linux, Android, FreeBSD, Apple macOS and iOS) and Microsoft Windows. WebRTC is a W3C and IETF standard enabling real-time peer-to-peer data and media exchange between two devices.
https://github.com/paullouisageneau/libdatachannel
datachannel-wasm - C++ WebRTC Data Channels for WebAssembly in browsers
https://github.com/paullouisageneau/datachannel-wasm