Case file · № 01 / 16
vChat
Secure messenger — End-to-end encrypted messenger built post-quantum-first: CRYSTALS-Kyber (ML-KEM) key agreement through PQXDH, a Double Ratchet message layer and epoch-based group keys (GMK) with recovery and sender rotation. All of it runs on a single Rust core — KyberSDK — shared by iOS, Android, Tauri desktop and a self-hosted Go backend.
What was built
- PQXDH key agreement on CRYSTALS-Kyber (ML-KEM) instead of classic X25519
- Double Ratchet message layer (AEAD + KDF) with per-message keys
- GMK epoch group keys, sender rotation and recovery from lost state
- BIP39 mnemonic recovery + argon2id/AES-GCM state escrow
- Multi-device accounts and panic-mode wipe
- One Rust core (KyberSDK) behind a C ABI — zero per-platform crypto code
- Self-hosted Go backend: auth, devices, prekeys, DM & group envelopes, files
Layers of the system
KyberSDK — Rust core
RustC ABI / FFIML-KEM- CRYSTALS-Kyber (ML-KEM) as the KEM, not an experimental branch
- PQXDH key agreement resistant to harvest-now-decrypt-later
- Double Ratchet + GMK epoch keys for groups
- FIPS-hardening track across the whole core
iOS — Swift / SwiftUI
SwiftSwiftUISPM- Modular SPM monorepo: every Core* a framework boundary, every Feature* one surface
- vChatNSE — notification extension that decrypts E2E push on device
- Encrypted local store (CoreDatabase), device identity in the Keychain
- BIP39 account recovery with no server holding keys
Android — Kotlin / Compose
KotlinJetpack ComposeJNI- Same Rust core over JNI bindings — crypto is never re-written
- Jetpack Compose UI, Coroutines + Flow for state
- Encrypted local store and an FCM pipeline with E2E decryption
Desktop — Tauri 2 (Rust + TypeScript)
RustTauri 2TypeScriptVite- Windows, macOS and Linux from one codebase
- Rust core linked natively — no Chromium underneath
- Native tray, menus and notifications, small installer
Backend — Go (self-hosted)
GoLokiPrometheusTempoGrafana- Services: auth, devices, prekeys, DM & group envelopes, file transfer
- The server runs on my own infrastructure, not a third-party BaaS
- Observability: Loki for logs, Prometheus for metrics, Tempo for traces, Grafana for dashboards
Technologies
Programming languagesRust, Swift, Kotlin, TypeScript, Go
Frameworks & toolsSwiftUI, Jetpack Compose, Tauri 2, Vite, JNI, C ABI
Infrastructureown servers, Loki, Prometheus, Tempo, Grafana
Facts
PlatformsiOS · Android · Desktop · Server
Statusin development
Years2025 → present
CategoryFlagship · post-quantum cryptography
vChat on iOS — direct chat, group and call in one client.
All projects