Platforms & Clients¶
One audited Rust core, many thin clients. Deep spec: docs/PLATFORMS.md,
docs/ROADMAP.md. Source: crates/.
Shipped clients¶
| Client | Crate | What it is |
|---|---|---|
CLI talkrypt |
crates/cli |
The primary product — host/join/link/registry + an in-chat REPL. See CLI Reference. |
TUI talkrypt-tui |
crates/tui |
A ratatui terminal UI (channel list, messages, input, status). |
Helper talkrypt-helper |
crates/helper |
A key-custody sidecar over an owner-only IPC channel. See Key Custody. |
The CLI/TUI are the desktop clients — there is no separate desktop GUI; a Tauri shell over the FFI is possible later but unbuilt.
The FFI (one core, every app)¶
crates/ffi exposes the core to other languages via uniffi — a single shared
binding consumed by Android (Kotlin) and, planned, iOS (Swift), built once so the
security-critical core is never reimplemented per platform. It ships as
libtalkrypt_ffi.{so,dylib,a}; bindings are generated by uniffi-bindgen. The
async core is wrapped behind a blocking facade (a tokio runtime owned by the
client object; UIs poll for events). It exposes the chat client (host/join/send/
invite/safety-number/peer-count/poll-event), identity & linking, registries, the
sealing API (Account::seal/from_sealed, the
HardwareKeyWrapper callback), and custody_report.
Android¶
A Kotlin/Gradle app links the FFI .so (cross-compiled to
aarch64-linux-android via cargo-ndk) + the uniffi Kotlin bindings. Built by
android/build-apk.sh → a sideloadable APK (debug-signed; no Play Services,
no telemetry). TALKRYPT_TOR=1 compiles the Arti transport in. Hardware-backed
custody uses Android Keystore/StrongBox through the HardwareKeyWrapper
callback. Designed for GrapheneOS / the Solana Seeker (whose Seed Vault
secure element reaches the HardwareBacked tier). Onboarding extras (QR deep
links, P2P APK self-sharing, nearby discovery) are in docs/onboarding.md. The
APK is a release artifact.
iOS¶
A native Swift app consumes the FFI over an XCFramework + uniffi Swift
bindings, with Secure Enclave hardware-backed sealing via the HardwareKeyWrapper
callback. scripts/build-ios.sh builds the XCFramework (device + simulator) and
scaffolds the TestFlight path (--testflight). Building the XCFramework needs
full Xcode + the iOS SDK; a TestFlight upload additionally needs an Xcode app
project + an Apple Developer account. See Packaging & Release.
Roadmap (planned)¶
Desktop GUI (Tauri), iOS app shell, browser-extension isolation/federation, and a
broader platform matrix — tracked in docs/ROADMAP.md. The Rust core
cross-compiles to mobile today; remaining mobile work is the native app shells
and the hardware-keystore bridges.