Files
re-teamspeak/README.md
T

94 lines
2.3 KiB
Markdown

# ReTeamSpeak
Desktop TeamSpeak 3 client built with `iced` and `tsclientlib` for Windows, Linux, and macOS.
## Current Direction
- UI: `iced`
- TeamSpeak protocol + state sync: `tsclientlib`
- Protocol declarations reference: `refercence/tsdeclarations/`
- Old in-tree protocol/audio/database/Tauri implementation has been removed
## Current User-Facing Features
- Connect to a TeamSpeak server by address and port
- Use a nickname and optional server password
- Browse channels and join a channel
- Receive live server/channel/client state updates
- Send and receive channel chat messages
- Mute microphone state and sync it to TeamSpeak
- Mute speaker/output state and sync it to TeamSpeak
- Toggle headset/output hardware state and sync it to TeamSpeak
- Toggle AFK state and sync it to TeamSpeak
- Import TeamSpeak identity from the local TS3 `settings.db`
- Select input and output audio devices
- Push-to-talk and continuous voice modes
- Noise cancellation selection in settings
## Current Gaps
- ServerQuery page is UI-only right now; execution is intentionally stubbed
- Bookmarks are currently in-memory only
- Identity import requires the `rusqlite` feature
- Full audio build requires system audio/build dependencies
## Build
Workspace root for cargo commands: `src/`
### Default build
```bash
cd src
cargo check -p re-teamspeak
```
### With identity import
```bash
cd src
cargo check -p re-teamspeak --features rusqlite
```
### With audio and identity import
On systems missing packages, use Podman:
```bash
podman run --rm -v $(pwd):/workspace:Z -w /workspace/src \
docker.io/library/debian:trixie bash -lc '
apt-get update -qq &&
apt-get install -y -qq \
build-essential curl cmake pkg-config libasound2-dev libssl-dev &&
curl --proto "=https" --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y &&
. /root/.cargo/env &&
cargo check -p re-teamspeak --features audio,rusqlite
'
```
## Repository Layout
```text
src/
├── Cargo.toml
└── iced-app/
├── Cargo.toml
└── src/
├── main.rs
├── audio.rs
├── noise_cancel.rs
├── identity.rs
└── theme.rs
```
## Reference Material
- `refercence/tsclientlib/`
- `refercence/tsdeclarations/`
- `docs/protocol.md`
- `docs/protocol_stack.md`
## License
MIT OR Apache-2.0