Skip to main content

Architecture

Wavry is structured as a modular stack with clear separation between control and encrypted transport.

Layer Model

LayerComponentsResponsibility
Protocolrift-corepacket model, DELTA congestion control, FEC, control primitives
Cryptorift-cryptoidentity, handshake, replay protection, authenticated encryption
Runtimewavry-server, wavry-clientcapture/encode/send and receive/decode/render/input loops
Control planegateway servicesignaling, auth, routing coordination
Transport fallbackrelay serviceblind forwarding for encrypted UDP payloads
Product surfacesdesktop/mobile/web appsuser workflows and integration surfaces

Control Plane vs Data Plane

Control plane:

  • session negotiation
  • policy and routing coordination
  • auth and admission controls

Data plane:

  • encrypted media and input transport
  • latency-sensitive adaptation and recovery

Design requirement:

  • control-plane services do not require access to decrypted payloads.

Session Path (Simplified)

Client <-> Gateway (signal/auth)
Client <-> Host (direct encrypted path preferred)
Client <-> Relay <-> Host (fallback encrypted path)

Runtime Pipeline

Host side:

  1. capture display/audio
  2. encode media
  3. packetize and encrypt
  4. transmit over UDP

Client side:

  1. receive encrypted packets
  2. validate/decrypt/reorder/FEC recovery
  3. decode and present

Input path:

  1. client captures input events
  2. encrypts and sends events
  3. host injects events

Adaptation Strategy

Wavry optimizes for responsiveness:

  • maintain low standing queue
  • adapt bitrate based on delay/loss/jitter trends
  • tune correction behavior for interactive workloads
  • prefer stable control feel over peak throughput

Security Boundaries

  • endpoint keys remain at host/client
  • relay operates on encrypted blobs
  • gateway is hardened as internet-facing API surface

See Security for deployment controls.

Linux and Wayland Design Focus

Linux is a first-class runtime target:

  • Wayland capture via portal + PipeWire path
  • runtime backend defaults tuned for Wayland stability
  • dedicated Linux preflight and runtime diagnostics

See Linux and Wayland Support.

Extension Areas

Common extension points:

  • platform capture/render backends
  • policy/auth integration
  • deployment automation and observability
  • product-specific UX flows

Deep Technical References