feat: web bridge — browser-based voice calls via WebSocket

New wzp-web crate serves a web page with:
- Browser mic capture via Web Audio API (48kHz mono)
- WebSocket transport for raw PCM audio
- Server-side Opus encode/decode + FEC through wzp relay
- Real-time audio playback in browser
- Level meter and connection stats

Usage:
  wzp-relay --listen 0.0.0.0:4433    # start relay
  wzp-web --port 8080 --relay 127.0.0.1:4433  # start web bridge
  Open http://localhost:8080 in browser

Two browsers connected to the same relay get bridged for a call.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Siavash Sameni
2026-03-27 18:23:39 +04:00
parent bddcfb1440
commit 3f128936c4
4 changed files with 454 additions and 0 deletions

View File

@@ -8,6 +8,7 @@ members = [
"crates/wzp-transport",
"crates/wzp-relay",
"crates/wzp-client",
"crates/wzp-web",
]
[workspace.package]