# External Research: TeaSpeak, ReSpeak, YaTQA **Date:** 2026-06-11 **Purpose:** Competitive analysis, dependency analysis, protocol documentation research --- ## 1. TeaSpeak ### Overview | Attribute | Details | |---|---| | **Name** | TeaSpeak | | **Website** | teaspeak.de (currently down, archived) | | **Repository** | github.com/TeaSpeak/TeaSpeak (issue tracker only) | | **License** | Mixed: Web Client (MPL-2.0), Server (Proprietary), TeaMusic (Open Source C++) | | **Status** | **Effectively unmaintained** — TeaWeb archived July 2025, last server release ~2022 | | **Stars** | 120 (main repo), 49 (TeaWeb), 7 (TeaMusic) | | **Languages** | TypeScript (84%), SCSS, HTML, WebAssembly (web client); C++ (music bot) | ### Architecture ``` TeaSpeak Server (closed-source binary, Linux x64 only) │ ├── TeaSpeak Web Client (TypeScript, open source, MPL-2.0) ├── TeaSpeak Native Client (closed-source binary, Win/Linux x64) └── TeaMusic (C++ music bot, open source) ``` ### Feature Comparison | Feature | TeaSpeak | Chanora | |---|---|---| | Voice (Opus) | ✅ | ✅ | | Text Chat | ✅ (markdown) | ✅ | | Video/Screen Sharing | ✅ (buggy, VP8) | Not planned | | Music Bot | ✅ (built-in) | Not in scope | | Channels | ✅ | ✅ | | Permissions | ✅ (advanced) | Partial | | File Transfer | ✅ | ✅ (v0.3.0) | | Web Client | ✅ | Not in scope | | Native Client | ✅ (closed source) | ✅ (Flutter + Rust) | | Cross-platform | Partial (Win/Linux) | ✅ (5 platforms) | | Push-to-Talk | Unknown | ✅ | | i18n | ✅ (8 languages) | ✅ | ### Lessons for Chanora **What to learn:** - Web client as installation-less option is compelling - Built-in music bot is popular feature - Hidden/private channels valued by users - Markdown in chat is well-received - Multi-language support is expected **What to avoid:** - Closed-source server prevents community maintenance - Monolithic architecture limits extensibility - Poor maintenance (abandoned since ~2022) - Buggy video/screen sharing (multiple open issues) - No ARM support (frequently requested) - Mixed tech stack (React + jQuery) creates maintenance burden ### Market Opportunity TeaSpeak's abandonment creates a clear opportunity for Chanora: - Users seeking open-source TeamSpeak-compatible clients - TeaSpeak's feature set validates market need - Chanora's formal engineering process prevents abandonment --- ## 2. ReSpeak Organization ### Overview | Attribute | Details | |---|---| | **URL** | https://github.com/ReSpeak | | **Mission** | Reverse-engineering and reimplementing TS3 protocol in Rust | | **Activity** | 16 public repositories, 11 contributors | | **Language focus** | Rust (primary), C, C#, Python, Svelte/TypeScript | | **License** | Apache-2.0 / MIT dual-license | ### Repository Inventory | Repository | Purpose | Stars | Status | |---|---|---|---| | **tsclientlib** | Core TS3 protocol library | 140 | Active | | **tsdeclarations** | Machine-readable protocol declarations | 94 | Active | | **TS3Hook** | DLL injection for packet decryption | 70 | Archived | | **rust-ts3plugin** | Rust bindings for TS3 plugin API | 14 | Active | | **SimpleBot** | Chat bot with custom reactions | 14 | Maintenance | | **quicklz** | QuickLZ compression for TS3 protocol | 7 | Stable | | **tomcrypt-rs** | Rust bindings for libtomcrypt | 6 | Dormant | | **ts3stats** | User statistics from server logs | 6 | Dormant | | **t4rust** | T4-like template engine for Rust | 5 | Active | | **Qint** | Full cross-platform TS3 client (Tauri) | 5 | Active | | **ts3tts** | Text-to-speech plugin | 3 | Maintenance | | **TsPressor** | Message compressor | 2 | Dormant | | **rust-ts3plugin-sys** | FFI bindings for TS3 plugin API | 0 | Active | | **MahTsIdentity** | Identity management | 0 | Dormant | | **pyTSon** | Python plugin interface | 0 | Dormant | | **TsVersionChecker** | Client version verification | 1 | Dormant | ### Key Library: tsclientlib **Architecture (monorepo):** | Crate | Purpose | |---|---| | `tsclientlib` | High-level client API | | `tsproto` | Low-level protocol (UDP, encryption, fragmentation) | | `ts-bookkeeping` | State tracking | | `tsproto-packets` | Packet parsing | | `tsproto-structs` | Auto-generated structs | | `tsproto-types` | Basic types | **Key capabilities:** - Full TS3 protocol handshake (Init1 RSA puzzle, ECDH key exchange) - Encryption: EAX mode (AES-128-CTR + OMAC) - Compression: QuickLZ level 1 - Packet fragmentation and reassembly - Voice/Opus audio handling **Performance:** - ~199ms connection time (RSA puzzle dominant) - ~189μs per message send ### Chanora's Dependency on ReSpeak | Dependency | How Chanora Uses It | |---|---| | `tsclientlib` | Protocol adapter (`chanora_protocol`) | | `tsproto` | Network layer, encryption | | `tsproto-types` | Basic TS3 types | | `tsproto-packets` | Packet parsing | | `tsproto-structs` | Command/event structs | | `ts-bookkeeping` | Server state tracking | | `AudioHandler` | Voice decode, jitter buffer | **Note:** Chanora uses a **fork** (`EdisonJwa/tsclientlib`) for a p256 coordinate padding fix. ### Protocol Documentation `tsdeclarations/ts3protocol.md` is the most comprehensive open TS3 protocol specification: 1. **Low-level packets:** 9 packet types (Voice, VoiceWhisper, Command, CommandLow, Ping, Pong, Ack, AckLow, Init1) 2. **Encryption:** EAX mode (AES-128-CTR + OMAC) 3. **Compression:** QuickLZ level 1 4. **Handshake:** 5-step Init1 (RSA puzzle), then ECDH key exchange 5. **Voice:** Opus codec at 48kHz, whisper targeting modes 6. **Identity:** EC key pairs (prime256v1), hashcash proof-of-work ### Gaps in ReSpeak | Gap | Impact on Chanora | |---|---| | Server code | Not needed (client only) | | TS5 protocol | No full TS5 client protocol | | File transfer | No implementation | | Auto-reconnect | "Not yet there" in README | | IPv6 support | Not documented | | Documentation | Sparse code comments | ### Recommendations **Continue using:** - `tsclientlib` as primary protocol dependency - `tsdeclarations` for protocol understanding **Consider contributing:** - p256 coordinate padding fix upstream - Auto-reconnect logic if implemented **Build internally:** - File transfer (no existing implementation) - Auto-reconnect logic - TS5 compatibility (monitor `tsdeclarations`) --- ## 3. YaTQA (yat.qa) ### Overview | Attribute | Details | |---|---| | **Name** | YaTQA — Yet Another TeamSpeak³ Query App | | **URL** | https://yat.qa/ | | **Author** | Janni "Яedeemer" K. from northern Germany | | **First release** | June 29, 2011 | | **Latest version** | v3.9.9b (March 1, 2023) | | **Language** | Delphi 2009 (~50,000+ lines) | | **Purpose** | GUI alternative to raw ServerQuery telnet commands | **Note:** "qa" stands for **Query App**, not "Quality Assurance." ### What It Is YaTQA is a Windows GUI tool for managing TeamSpeak 3 servers via the ServerQuery interface. It is NOT a testing framework. ### Useful Resources The `/ressourcen/` section contains valuable unofficial documentation: | Resource | Value for Chanora | |---|---| | Server error codes | Comprehensive error handling reference | | Permission IDs | Permission feature implementation | | Client versions | Protocol compatibility reference | | DNS resolver behavior | Server resolution reference | | Anti-flood mechanics | Rate limiting design | | Codec configuration | Audio codec handling reference | | Snapshot format | Server migration features | | Voice client anti-flood | Rate limiting implementation | | Other protocols | File transfer, TSDNS, blacklist, weblist, badges | ### Relevance to Chanora **Low direct relevance** — management tool, not testing framework. **What to extract:** 1. Unofficial ServerQuery documentation (mostly German) 2. Server error codes for comprehensive error handling 3. Permission IDs for permission features 4. Anti-flood mechanics for rate limiting design ### Codec Reference YaTQA documents TeamSpeak's codec configuration: - Six codecs: Speex 8kHz, Speex 16kHz, Speex 32kHz, CELT 48kHz, Opus Voice, Opus Music - 11 quality levels per codec (0–10) - Latency settings for Speex/CELT (20–60ms) - Opus is VBR (variable bitrate) --- ## 4. Summary: What Chanora Can Learn ### From TeaSpeak - ✅ Open-source client is the right approach - ✅ Cross-platform support is expected - ✅ i18n is important - ❌ Avoid closed-source components - ❌ Avoid monolithic architecture - ❌ Avoid mixed tech stacks ### From ReSpeak - ✅ `tsclientlib` is the right protocol foundation - ✅ Protocol declarations are valuable reference - ⚠️ Keep fork in sync with upstream - ⚠️ Monitor for TS5 protocol updates - 🔨 Need to build file transfer internally - 🔨 Need to build auto-reconnect internally ### From YaTQA - 📚 Unofficial protocol docs are valuable reference - 📚 Server error codes for error handling - 📚 Permission IDs for permission features - 📚 Anti-flood mechanics for rate limiting - ❌ Not a testing framework — don't try to use it as one --- *Generated by external research agents on 2026-06-11*