Repository containing an implementation of ICE (RFC8445) protocol writing in the Rust programming language.
This still very much WIP code and everything is still subject to change.
- RFC5389: Session Traversal Utilities for NAT (STUN)
- RFC8445: Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal
- RFC5766: Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)
- RFC7675: Session Traversal Utilities for NAT (STUN) Usage for Consent Freshness
- RFC6544: TCP Candidates with Interactive Connectivity Establishment (ICE)
- RFC8838: Trickle ICE: Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol
The current status is that there is enough of the implementation to be able to nominate pairs between a controlled and controlling agent in a static stream configuration. This means that there is a fairly robust STUN implementation (RFC5389) and a large part of the state machine implemented for the newest ICE specification (RFC8445). Supporting more scenarios and is certainly part of the near and long term future roadmap.
- RFC5766
- RFC6554
- RFC7675
- Trickle ICE