rice-c

Crates.iorice-c
lib.rsrice-c
version0.1.1
created_at2025-08-14 05:30:39.796807+00
updated_at2025-08-14 13:22:55.923566+00
descriptionICE (RFC8445) implementation protocol
homepage
repositoryhttps://github.com/ystreet/librice
max_upload_size
id1794461
size128,819
Matthew Waters (ystreet)

documentation

https://docs.rs/rice-c

README

Build status codecov Dependencies crates.io docs.rs

rice-c

Repository containing Rust bindings to the C API version of rice-proto. This would be needed when using rice-proto from multiple independent libraries/application and shared access to the same Agent is required.

Relevant standards

  • RFC5245: Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols
  • RFC5389: Session Traversal Utilities for NAT (STUN)
  • RFC5766: Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)
  • RFC5769: Test Vectors for Session Traversal Utilities for NAT (STUN)
  • RFC6062: Traversal Using Relays around NAT (TURN) Extensions for TCP Allocations
  • RFC6156: Traversal Using Relays around NAT (TURN) Extension for IPv6
  • RFC6544: TCP Candidates with Interactive Connectivity Establishment (ICE)
  • RFC7675: Session Traversal Utilities for NAT (STUN) Usage for Consent Freshness
  • RFC8445: Interactive Connectivity Establishment (ICE): A Protocol for Network Address Translator (NAT) Traversal
  • RFC8489: Session Traversal Utilities for NAT (STUN)
  • RFC8656: Traversal Using Relays around NAT (TURN): Relay Extensions to Session Traversal Utilities for NAT (STUN)
  • RFC8838: Trickle ICE: Incremental Provisioning of Candidates for the Interactive Connectivity Establishment (ICE) Protocol

TODO

  • RFC6062
  • RFC6156
  • RFC7675
  • RFC8656

Building

If building rice-c as part of this repository, then cargo-c is required and can be installed using:

cargo install cargo-c

rice-c will then build a local copy of rice-proto for use.

Otherwise, this crate requires a pre-existing installation of the C library rice-proto that can be found using pkg-config (through system-deps). Running the following command will indicate whether your environment contains rice-proto.

pkg-config --modversion rice-proto

If you need to build rice-proto with the C API, have a look at the README.

Once the the prerequisite is handled, you can build rice-c using a regular cargo build invocation.

Commit count: 201

cargo fmt