Open-source Push-to-Talk platform — a high-performance server + native Android client for real-time voice communication.
- 🎤 Push-to-Talk — Half-duplex voice with floor control (one speaker at a time)
- 🔒 Secure Auth — JWT RS256 + Argon2id password hashing + refresh token rotation
- 👥 Groups & Channels — Create groups, add channels, manage members with roles
- ⚡ Low Latency — UDP audio relay with Opus codec (~50ms end-to-end)
- 🔧 Configurable Server — Users can point the app at any OpenPTT server
- 🎨 Clean UI — Jetpack Compose with Material 3, dark/light themes
- 📡 Background Operation — Foreground service keeps audio alive
┌─────────────────┐ HTTPS/WSS ┌──────────────────┐
│ Android Client │◄────────────────►│ Rust Server │
│ (Kotlin/Compose)│ UDP/Opus │ (Axum/Tokio) │
└─────────────────┘◄────────────────►│ │
├──────────────────┤
│ PostgreSQL │
│ Redis │
└──────────────────┘
# Clone
git clone https://github.com/your-org/open-ptt.git
cd open-ptt
# Start with Docker (recommended)
docker-compose up -d
# Or run locally
cd server
cp config/default.toml config/local.toml # Edit your config
cargo run --release- Open
android/in Android Studio - Build & run on device/emulator
- Enter your server URL on first launch
- Register an account and start talking!
MIT — see LICENSE