capsule.yaml
apiVersion: capsule.dev/v0.1
kind: Capsule
name: cverse-webrtc-direct-peer
version: 0.1.0
type: subsystem
purpose:
summary: 'Manages direct WebRTC peer-to-peer connections within the Go backend,
including TURN server setup, RTP packet handling, and media processing. This capsule
provides the low-level WebRTC capabilities for direct streaming.
'
owns:
- Direct WebRTC peer connection establishment
- TURN server configuration and relay
- RTP packet processing and media segmentation
- Audio/video delay and pacing logic
does_not_own:
- LiveKit integration
- Go orchestration server business logic
- Frontend WebRTC client
interfaces:
provides:
- kind: library
name: webrtc-direct-peer
description: Go library for managing direct WebRTC peer connections and media.
requires:
- kind: env
name: ICE_PUBLIC_IP
description: Public IP or domain for ICE candidates.
- kind: env
name: TURN_PORT
description: Port for the TURN server.
- kind: env
name: TURN_USERNAME
description: Username for TURN server authentication.
- kind: env
name: TURN_PASSWORD
description: Password for TURN server authentication.
agent:
summary_for_ai: 'An AI agent working on this capsule would focus on optimizing WebRTC
media pipeline, improving NAT traversal (TURN/STUN), or enhancing media synchronization.
It requires deep knowledge of WebRTC protocols, RTP, and Go programming.
'
avoid:
- Implementing high-level application logic or AI inference.
verification:
invariants:
- WebRTC connections must be stable and low-latency.
- Media streams must be correctly transmitted and received.
- TURN server must be correctly configured and accessible.
x-reuse:
notes: '`server/internal/direct/turn.go` requires configuration for TURN server
credentials and public IP (`ICE_PUBLIC_IP`, `TURN_PORT`, `TURN_USERNAME`, `TURN_PASSWORD`).
These values need to be parameterized for deployment in different environments.
'
x-reconstruct:
install: install.json