jCyrus
jCyrusProduct Builder
  • Home
  • About
  • Skills
  • Projects
  • Contact
Back to Projects

ZeroDrop

Privacy / Terminal App

Open Source
View Source

About

ZeroDrop (formerly GhostWire) is an end-to-end encrypted, terminal-based chat application built in Rust. Its guiding principle is simple: the server knows nothing, the terminal is everything. Every message is encrypted on the client using an X25519 key exchange and ChaCha20-Poly1305 authenticated encryption, then handed to a relay server that does nothing but broadcast opaque ciphertext — it never sees plaintext, keys, or metadata. The client UI is built with Ratatui on top of a Tokio async runtime, with WebSocket transport via Tungstenite and an Axum-based relay. Users can exchange direct messages or join group channels, verify peer identity with safety numbers, and send self-destructing messages that expire after a configurable TTL. A live telemetry panel surfaces network activity directly in the terminal.

Technologies Used

RustRatatuiTokioTungsteniteAxumChaCha20-Poly1305

Key Features

  • End-to-end encryption with X25519 key exchange and ChaCha20-Poly1305
  • Zero-knowledge 'dumb broadcast' relay — no plaintext or metadata stored
  • Safety-number verification to confirm you're talking to the right peer
  • Self-destructing messages with configurable TTL
  • Direct messages and group channels
  • Message replay protection and key rotation
  • Real-time telemetry and network-activity display in the TUI
  • Relay deployable on Shuttle.rs or run locally

Challenges & Solutions

The hard part of a zero-knowledge messenger is doing real cryptography while the server is deliberately ignorant. ZeroDrop implements the full handshake, key rotation, and replay protection on the client so the relay can stay a dumb broadcast — which means correctness and forward secrecy can't lean on any server-side state. Building a responsive, real-time TUI on async Rust required careful coordination between the Tokio event loop, WebSocket streams, and Ratatui rendering so the interface stays fluid while encrypting, decrypting, and verifying messages in the background.

Outcomes & Impact

ZeroDrop is actively developed and open source under the MIT license, at v0.7.1 across 13 releases. The relay holds no recoverable plaintext or metadata, delivering on the zero-knowledge design goal, and the project serves as a working reference for applied cryptography and real-time systems programming in Rust.

Interested in this project or want to collaborate?

Get in touch

© 2026 Cyrus Espiritu. Privacy