CI/CD / Build Frontend (push) Failing after 11s
CI/CD / Test (macos-latest) (push) Has been cancelled
CI/CD / Test (windows-latest) (push) Has been cancelled
CI/CD / Build Desktop (linux) (push) Has been cancelled
CI/CD / Build Desktop (macos) (push) Has been cancelled
CI/CD / Build Desktop (windows) (push) Has been cancelled
CI/CD / Release (push) Has been cancelled
CI/CD / Test (ubuntu-latest) (push) Failing after 2s
- tscore: Protocol implementation (packets, crypto, connection handshake) - tsaudio: Audio engine (capture, playback, codec, VAD, jitter buffer) - tsdb: SQLite database (identities, bookmarks, messages, settings) - shared: Core types and events - tauri-app: Tauri v2 desktop application with React frontend - docs: SRS, SAD, SDD documentation - CI/CD: GitHub Actions workflow - 32 unit tests passing
85 lines
2.3 KiB
Markdown
85 lines
2.3 KiB
Markdown
# ReTeamSpeak
|
|
|
|
Cross-platform TeamSpeak 3 client supporting Windows, macOS, Linux, iOS, and Android.
|
|
|
|
## Features
|
|
|
|
- TeamSpeak 3 protocol implementation (UDP, AES-128-EAX encryption)
|
|
- Voice communication with Opus codec
|
|
- Text messaging (server, channel, private)
|
|
- Channel and client management
|
|
- Identity and bookmark management
|
|
- Cross-platform UI (Tauri v2 + React)
|
|
|
|
## Architecture
|
|
|
|
```
|
|
src/
|
|
├── shared/ # Shared types (~700 lines)
|
|
├── tscore/ # Protocol core (~1800 lines)
|
|
│ ├── protocol/ # Packet parsing, commands
|
|
│ ├── crypto/ # AES-EAX, ECDH, SHA
|
|
│ └── connection/ # Handshake, state machine, resend
|
|
├── tsaudio/ # Audio engine (~280 lines)
|
|
├── tsdb/ # Database layer (~400 lines)
|
|
└── tauri-app/ # Application shell
|
|
├── src-tauri/ # Rust backend
|
|
└── frontend/ # React frontend
|
|
```
|
|
|
|
## Build
|
|
|
|
### Prerequisites
|
|
|
|
- Rust 1.70+
|
|
- Node.js 20+
|
|
- System dependencies (see below)
|
|
|
|
### Linux
|
|
```bash
|
|
sudo apt install libdbus-1-dev pkg-config libgtk-3-dev \
|
|
libwebkit2gtk-4.1-dev libayatana-appindicator3-dev \
|
|
librsvg2-dev libssl-dev libasound2-dev
|
|
```
|
|
|
|
### Build Commands
|
|
```bash
|
|
# Build core libraries
|
|
cargo build -p shared -p tscore -p tsaudio -p tsdb
|
|
|
|
# Run tests
|
|
cargo test -p shared -p tscore -p tsaudio -p tsdb
|
|
|
|
# Build frontend
|
|
cd src/tauri-app/frontend && npm install && npm run build
|
|
|
|
# Build desktop app
|
|
cd src && cargo build --release
|
|
```
|
|
|
|
### Using Podman (no root)
|
|
```bash
|
|
podman run --rm -v $(pwd):/workspace:Z -w /workspace/src \
|
|
docker.io/library/debian:trixie bash -c "
|
|
apt-get update -qq &&
|
|
apt-get install -y -qq curl pkg-config libdbus-1-dev libgtk-3-dev \
|
|
libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev \
|
|
libssl-dev libasound2-dev build-essential &&
|
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y &&
|
|
source \$HOME/.cargo/env &&
|
|
cargo test -p shared -p tscore -p tsaudio -p tsdb
|
|
"
|
|
```
|
|
|
|
## Documentation
|
|
|
|
- [SRS](docs/SRS.md) - Software Requirements Specification
|
|
- [SAD](docs/SAD.md) - Software Architecture Document
|
|
- [SDD](docs/SDD.md) - Software Design Document
|
|
- [Protocol](docs/protocol.md) - TS3 Protocol Analysis
|
|
- [Protocol Stack](docs/protocol_stack.md) - Protocol Stack Details
|
|
|
|
## License
|
|
|
|
MIT OR Apache-2.0
|