One Rust core. Two phones. Zero servers.
FLVSH ships as native iPhone and Android apps built over the same Rust protocol core — so any two phones in the room speak the exact same language over the air.
FLVSH for iPhone
Native SwiftUI. CoreBluetooth underneath.
The full mesh messenger on iOS: discovery, encrypted chat, voice notes, and relay — running on the same Rust core as Android, so both platforms speak an identical protocol.
- Dual-role BLE: advertises and scans simultaneously
- Voice messages, recorded and encrypted on device
- Read receipts and delivery states across mesh hops
- Disappearing messages with per-chat timers
- Local notifications when a message lands in the background
FLVSH for Android
Jetpack Compose. The same wire protocol.
Byte-for-byte compatible with the iOS app: an iPhone and a Pixel discover each other, exchange keys, and message across the room — or across the crowd — with no infrastructure.
- GATT server + client in one app, up to 7 simultaneous peers
- MTU negotiation up to 517 bytes for fast fragment transfer
- Mesh relay with TTL and deduplication
- Offline queue drains automatically on reconnect
- Blocklist enforced at the crypto layer
FLVSH Core
One Rust library. Every platform.
Identity, encryption, the packet protocol, fragmentation, and storage live in a single Rust crate, exposed to Swift and Kotlin through generated bindings. The apps are thin shells over the same core.
- X25519 + ChaCha20-Poly1305 via audited RustCrypto crates
- Deterministic packet format shared by both apps
- UniFFI-generated Swift and Kotlin bindings
- SQLite storage engine with migration-safe schema
- Tested fragmentation, reassembly, and dedup