#p2p #rendezvous #nat #hole-punching

bin+lib rift-rndzv

Rendezvous protocol for Rift P2P NAT traversal

5 releases

0.1.4 Feb 11, 2026
0.1.3 Feb 11, 2026
0.1.2 Feb 11, 2026
0.1.1 Feb 10, 2026
0.1.0 Feb 10, 2026

#8 in #rendezvous


Used in 3 crates

Apache-2.0 OR MIT

190KB
4K SLoC

rift-rndzv

riftd

crates.io docs.rs License DOI

Rendezvous protocol for NAT traversal in the riftd P2P protocol.


Part of the riftd project — serverless P2P voice + text chat over UDP.

What's in this crate?

rift-rndzv implements Predictive Rendezvous — a novel approach to NAT traversal:

  • SRT Tokens — Semantic Rendezvous Tokens for easy sharing (QR codes, links)
  • Predictive Scheduling — Time-coordinated hole punching
  • NAT Coordination — Synchronized connection attempts
  • Invite Flow — Generate and accept peer invitations
  • Fallback Handling — Graceful degradation to relay

Usage

use rift_rndzv::{RndzvConnector, SrtToken};

let connector = RndzvConnector::new();

// Generate an invite
let srt = connector.generate_srt(space_id, &identity)?;
println!("Share this: {}", srt.to_uri());

// Connect via invite
let peer = connector.connect_srt(&srt_uri).await?;

SRT Format

SRTs are compact, shareable tokens:

rift://srt/<base64-encoded-token>

See docs/srt-invites.md for UX patterns.

Crate Description
rift-nat STUN/TURN primitives
rift-mesh Mesh networking (uses rndzv)
rift-sdk High-level invite API

Citation

If you use riftd in academic work, please cite:

de Beer, R. (2026). Predictive Rendezvous: Time–Intent–Deterministic Peer Coordination Without Infrastructure. Zenodo. https://doi.org/10.5281/zenodo.18528430

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Dependencies

~13–27MB
~277K SLoC