Skip to content

CoderBuck/hole

Repository files navigation

Hole Chat

Hole Chat is an Android-focused P2P direct messaging app built with Flutter, Rust, and iroh.

Current product shape

  • one-to-one chat only
  • home screen is a persistent friends list
  • first-time pairing happens by invite code or QR scan
  • once a friend is added, the app saves the friend locally and you can reopen the chat later
  • supports text and image messages

There is no user-facing room concept anymore. Pairing is done once, then the app behaves like a normal direct-message client.

Stack

  • Flutter for the Android UI
  • Rust for the networking core
  • flutter_rust_bridge for the boundary
  • iroh 0.96.1
  • iroh-gossip 0.96.0
  • iroh-blobs 0.98.0

How pairing works

  1. One device opens Add friend and shows its invite QR code.
  2. The other device scans the code or pastes the invite string.
  3. The app establishes a direct chat topic for that pair.
  4. Both devices save the friend locally for later reuse.

Peer identity is stable across restarts as long as the app data is preserved, because the underlying iroh secret key is stored in the app documents directory.

Run

flutter pub get
flutter_rust_bridge_codegen generate
flutter run -d android

For Android builds in this repo, prefer explicit ABI targets:

flutter build apk --debug --target-platform android-arm64,android-x64

Notes

  • friends and message history are stored locally under the app documents directory
  • image blobs and downloaded images are stored locally under the app documents directory
  • the Rust identity key is persisted locally, so the same installation keeps the same peer ID across app restarts
  • a plain flutter build apk will still try to build extra Android ABIs and can spend time downloading toolchains and Flutter engine artifacts on first build

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors