94 lines
2.3 KiB
Markdown
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
|