2026-06-15 21:09:09 +02:00
|
|
|
# VoiceCat
|
|
|
|
|
|
2026-09-19 22:40:48 +02:00
|
|
|
VoiceCat is a self-hosted, channel-based voice and text chat system built on .NET 10. It uses
|
|
|
|
|
TLS 1.3 for protobuf control traffic and authenticated encrypted UDP for Opus media. There is
|
|
|
|
|
no WebRTC, central directory, or plaintext mode.
|
2026-06-15 21:09:09 +02:00
|
|
|
|
2026-09-19 22:40:48 +02:00
|
|
|
The repository contains a managed server, CLI, shared client/audio core, and native Windows,
|
|
|
|
|
macOS, and iOS user interfaces. A small C library supplies Opus/RNNoise, and a small Swift iOS
|
|
|
|
|
extension captures ReplayKit application audio.
|
2026-06-15 21:09:09 +02:00
|
|
|
|
2026-06-18 03:16:01 +02:00
|
|
|
## Build
|
2026-06-15 21:09:09 +02:00
|
|
|
|
|
|
|
|
```bash
|
2026-09-19 22:40:48 +02:00
|
|
|
./dotnet/build-native.ps1
|
|
|
|
|
dotnet restore dotnet/VoiceCat.slnx --locked-mode
|
|
|
|
|
dotnet build dotnet/VoiceCat.slnx -c Release --no-restore
|
|
|
|
|
dotnet test dotnet/VoiceCat.slnx -c Release --no-build
|
2026-06-15 21:09:09 +02:00
|
|
|
```
|
|
|
|
|
|
2026-09-19 22:40:48 +02:00
|
|
|
See [CLAUDE.md](CLAUDE.md) for the developer map, [docs/README.md](docs/README.md) for current
|
|
|
|
|
contracts, and [PROGRESS.md](PROGRESS.md) for the short release handoff.
|
2026-06-18 03:16:01 +02:00
|
|
|
|
2026-06-15 21:09:09 +02:00
|
|
|
## Layout
|
|
|
|
|
|
2026-09-19 22:40:48 +02:00
|
|
|
```text
|
|
|
|
|
proto/ protobuf wire schema
|
|
|
|
|
dotnet/src/ managed protocol, crypto, server, client, audio, and CLI
|
|
|
|
|
dotnet/tests/ managed behavior and integration tests
|
|
|
|
|
clients/windows/ WinForms client
|
|
|
|
|
clients/apple/dotnet/ AppKit and UIKit clients
|
|
|
|
|
native/media/ narrow Opus/RNNoise C shim
|
|
|
|
|
native/rnnoise/ vendored RNNoise source and model
|
|
|
|
|
native/apple/broadcast/ ReplayKit broadcast extension
|
|
|
|
|
docs/ current contracts and operating documentation
|
2026-06-15 21:09:09 +02:00
|
|
|
```
|
|
|
|
|
|
2026-09-19 22:40:48 +02:00
|
|
|
The remaining C++ implementation and old Swift applications are unsupported retirement
|
|
|
|
|
sources. They are not compatibility targets or architectural authorities.
|
2026-06-15 21:09:09 +02:00
|
|
|
|
2026-09-19 22:40:48 +02:00
|
|
|
## Non-negotiable constraints
|
|
|
|
|
|
|
|
|
|
- Encryption is mandatory.
|
|
|
|
|
- No GPL or LGPL dependencies.
|
|
|
|
|
- Real-time audio callbacks never allocate, lock, block, or perform I/O.
|
|
|
|
|
- Accessibility is a release requirement on every client platform.
|