mirror of
https://github.com/block/buzz.git
synced 2026-08-18 06:50:31 +02:00
The contract every mesh lane builds against:
- wire.rs: ALPN buzz/mesh/1, WIRE_VERSION byte + postcard framing;
FencedHeader {session_id, generation, owner_runtime_id} on every
session-bearing frame (fencing law); MeshDatagram (realtime-media),
MeshStreamFrame (Hello/Data/Goodbye/Gossip) with u32-LE length-delimited
bi-stream framing; Profile {ReliableStream, RealtimeMedia, HuddleControl}.
- lib.rs: MeshConfig (BUZZ_MESH kill switch), MeshError taxonomy, and the
two relay seams — RelayMeshMembership (hints only) and RelayPeerTransport
(fenced bytes; size/version checks in transport, generation fencing in the
session layer at every hop).
Unit tests pin roundtrips, unknown-version rejection, and a 64B datagram
header overhead budget (Opus @20ms + header must clear the ~1200B QUIC
datagram floor).
Co-authored-by: Tyler Longwell <tlongwell@block.xyz>
Signed-off-by: Tyler Longwell <tlongwell@block.xyz>