39 lines
2.0 KiB
Markdown
39 lines
2.0 KiB
Markdown
# 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](architecture.md) — components, ownership, concurrency, and native boundary.
|
|
- [protocol.md](protocol.md) — protobuf control messages and fixed UDP media header.
|
|
- [security.md](security.md) — TLS, TOFU, media keys, authentication, and threat model.
|
|
- [voice.md](voice.md) — streams, Opus, loss handling, jitter, mixing, and screen audio.
|
|
- [api-dotnet.md](api-dotnet.md) — managed APIs and ownership contracts.
|
|
- [building.md](building.md) — development, platform builds, tests, and publishing.
|
|
- [deployment.md](deployment.md) — server configuration and packaging.
|
|
- [ios-deploy.md](ios-deploy.md) — managed iOS physical-device build and deployment.
|
|
- [tech-stack.md](tech-stack.md) — supported dependencies and licensing.
|
|
- [broadcast-ring-format.md](broadcast-ring-format.md) — frozen iOS extension/host ring ABI.
|
|
- [roadmap.md](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.proto` is 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.
|