Architecture
Wavry is structured as a modular stack with clear separation between control and encrypted transport.
Layer Model
| Layer | Components | Responsibility |
|---|---|---|
| Protocol | rift-core | packet model, DELTA congestion control, FEC, control primitives |
| Crypto | rift-crypto | identity, handshake, replay protection, authenticated encryption |
| Runtime | wavry-server, wavry-client | capture/encode/send and receive/decode/render/input loops |
| Control plane | gateway service | signaling, auth, routing coordination |
| Transport fallback | relay service | blind forwarding for encrypted UDP payloads |
| Product surfaces | desktop/mobile/web apps | user 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:
- capture display/audio
- encode media
- packetize and encrypt
- transmit over UDP
Client side:
- receive encrypted packets
- validate/decrypt/reorder/FEC recovery
- decode and present
Input path:
- client captures input events
- encrypts and sends events
- 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