Overview of libjuice
masterlibjuice is a C library designed for UDP Interactive Connectivity Establishment (ICE). It enables bidirectional UDP streams through Network Address Translator (NAT) traversal.
Key features include:
- A simplified implementation of the ICE protocol (client and server side).
- Support for STUN (RFC5389 / RFC8489) and TURN relaying (RFC5766 / RFC8656).
- IPv4 and IPv6 dual-stack support.
- SDP-based interface (RFC8839).
- Support for TCP candidates (RFC6544).
- ICE Consent freshness (RFC7675) and ICE Patiently Awaiting Connectivity (RFC 8863).
Limitations:
- Only UDP is supported as a transport protocol.
- Only one component is supported per session (sufficient for WebRTC Data Channels or multiplexed RTP+RTCP).
- Only RFC8828 mode 2 is supported (default route + all local addresses).