3 releases

0.0.3 Dec 23, 2022
0.0.2 Mar 14, 2022
0.0.1 Jan 24, 2021

#6 in #ice

50 downloads per month



Build status codecov Dependencies crates.io docs.rs


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.

Relevant standards

  • 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)
  • draft-ietf-ice-trickle-21: Trickle ICE: Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol

Current status

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


~351K SLoC