VoiceCat documentation
VoiceCat is a self-hosted channel-based voice and text system. Control traffic uses TLS 1.3; media uses authenticated encrypted UDP derived from the TLS session. There is no plaintext mode and no central service.
The .NET 10 implementation is the source of truth. Some detailed documents predate the managed rewrite and are being corrected as code changes touch them. When prose conflicts with current managed code or tests, follow the managed implementation and fix the document in the same change.
Current documents
- architecture.md — components, ownership, concurrency, and native boundary.
- protocol.md — protobuf control messages and fixed UDP media header.
- security.md — TLS, TOFU, media keys, authentication, and threat model.
- voice.md — streams, Opus, loss handling, jitter, mixing, and screen audio.
- api-dotnet.md — managed APIs and ownership contracts.
- building.md — development, platform builds, tests, and publishing.
- deployment.md — server configuration and packaging.
- ios-deploy.md — managed iOS physical-device build and deployment.
- tech-stack.md — supported dependencies and licensing.
- broadcast-ring-format.md — frozen iOS extension/host ring ABI.
- roadmap.md — only current release gates and intentionally deferred features.
The completed C++-to-.NET migration plan was removed. Git history preserves that work without making every future agent load an obsolete implementation diary.
Durable rules
proto/voicecat.protois the control-plane schema.- Encryption is mandatory.
- No GPL or LGPL dependencies.
- Real-time audio callbacks never allocate, lock, block, or perform I/O.
- The server relays encoded media; it does not mix or transcode.
- Text is ephemeral in v1.
- Accounts are administrator-provisioned; guests are an operator choice.
- Wire, database, and shared-ring changes are explicitly versioned.