Files
voice-cat/README.md
Talon bcb7ae8ccb build(cmake): clean up presets, add release/apple presets, cross-platform triplets
Rationalize the preset set to match the project's actual state (past M5):
- Rename dev->skeleton (no-deps stub smoke), m1-dev->dev (default dev preset)
- Drop m2-dev (cache-identical to m1-dev)
- Add release preset (optimized + tests on, symbols kept)
- Strip server-release binaries (-s linker flag)
- Add apple-dev/apple-ios/apple-ios-sim scaffolding presets for XCFramework

Add cmake/voicecat-toolchain.cmake wrapper that auto-resolves the vcpkg
triplet from the host platform (x64-mingw-static/x64-linux/arm64-osx) so
the main presets work on Windows/Linux/macOS without per-OS variants.

Update all docs (building.md, CLAUDE.md, README.md, AGENTS.md, deployment.md,
tech-stack.md, client READMEs) and stale preset-name references in code
comments. No C++ behavior changes — the core was already portable.
2026-06-18 03:16:01 +02:00

66 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# VoiceCat
Self-hosted, native voice & text chat in the spirit of classic TeamSpeak / Mumble —
channel-based voice, channel + private text, one server you run yourself. Plain **TCP**
(control) and **UDP** (media), no WebRTC. Encrypted by default. A shared **C++ core**
(`libvoicecat`) drives native clients (Swift on macOS/iOS, C# on Windows) and the server.
> **Status:** Design complete in [`docs/`](docs/). M1M5 are implemented — real TLS control
> plane, encrypted UDP voice (Opus), multi-stream, TOFU identity pinning, channel tree,
> permissions, moderation, disconnect/keepalive/reaper. Windows WinForms C# client shipped
> (M4). macOS/iOS Swift client is next. See [`PROGRESS.md`](PROGRESS.md) and
> [`docs/roadmap.md`](docs/roadmap.md).
## Read the design first
The [`docs/`](docs/) folder is the source of truth. Start at [`docs/README.md`](docs/README.md),
then `architecture``protocol``voice``security``tech-stack``deployment`
`roadmap`.
## Build
The default development preset is **`dev`** — it builds everything (server + tools + tests)
with real vcpkg deps. It works on Windows, Linux, and macOS (vcpkg triplet auto-resolved).
```bash
# one-time vcpkg setup:
git clone https://github.com/microsoft/vcpkg && ./vcpkg/bootstrap-vcpkg.sh # .bat on Windows
export VCPKG_ROOT=/path/to/vcpkg # Linux/macOS; or $env:VCPKG_ROOT on PowerShell
# configure + build + test:
cmake --preset dev
cmake --build --preset dev
ctest --preset dev # 21 behavior tests
```
Artifacts land in `build/dev/bin/` (`voicecat-server`, `vccli`, `voicecat-admin`).
The `skeleton` preset (no vcpkg deps, stubs only) is a fast smoke check that needs no
third-party libraries:
```bash
cmake --preset skeleton && cmake --build --preset skeleton && ctest --preset skeleton
```
See [`docs/building.md`](docs/building.md) for the full preset matrix (including `release`,
`server-release`, `windows-client`, and Apple platform scaffolding).
## Layout
```
docs/ design spec (read this)
core/ libvoicecat — the shared C++ core
include/ voicecat.h (the C ABI all clients call)
proto/ voicecat.proto (control-plane wire format, source of truth)
src/ net/ crypto/ codec/ protocol/ session/ audio/ (stubs today)
server/ voicecat-server (headless; links the core)
tools/vccli/ headless test client — drives the protocol from M1 on
clients/ apple/ (Swift, M4) windows/ (C#, M4) — placeholders for now
tests/ CTest targets
```
## License
Permissive-only dependencies (no GPL/LGPL) so the project can be redistributed freely,
including closed-source. Project license: TBD (see [`docs/tech-stack.md`](docs/tech-stack.md) §5).