~/talk

Designing a cross-platform library for encrypted messaging

Talkat Oxidize 2025 · 2025-09-16..09-18· [cryptography, rust]
links:none on file
links:none on file
slides:none on file

Threema replaces three diverging codebases (iOS, Android, desktop) with a Rust core that models protocol flows as blackbox state machines, exposed over FFI so there is no async across language boundaries. Apps drive the protocol by calling poll/add_chunks and executing explicit instructions, letting native TCP, TLS and WebSocket implementations stay in the platform. Bindings are generated with uniffi and wasm-bindgen/TSI, yielding testable, audit-friendly transitions and smaller surface area for misuse.

AI-written summary · about

  1. 0:00Prima introduction
  2. 1:05Prima background
  3. 2:33Multiple code bases challenges
  4. 3:41Cross-platform library requirements
  5. 4:45Async/await across languages
  6. 8:42Async/await FFI challenges
  7. 9:46API design without async/await
  8. 11:14State machines for protocols
  9. 12:39Black-box state machine
  10. 14:44FFI bindings overview
  11. 15:45Error handling in Rust
  12. 17:52Error handling in TypeScript/Kotlin/Swift
  13. 18:56Key learnings
  14. 20:00Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.