KEIBIDROP v0.3.0

Persistence, resumable downloads, presence, and five platforms

4 min read | KEIBIDROP Series

KEIBIDROP v0.3.0 is out. Binaries for macOS (arm64 + x86_64), Linux, and Windows are on GitHub Releases. iOS and Android builds are being submitted to the App Store and Play Store.

# macOS
brew tap keibisoft/keibidrop
brew install keibidrop

# Windows
choco install keibidrop

# Linux (Debian/Ubuntu)
wget https://github.com/KeibiSoft/KeibiDrop/releases/download/v0.3.0/keibidrop_0.3.0_amd64.deb
sudo dpkg -i keibidrop_0.3.0_amd64.deb

What changed since v0.2.0

v0.2.0 introduced persistent identity and contacts. v0.3.0 makes the rest of the app persistent: shared files survive restarts, incomplete downloads resume where they left off, and the UI tracks who is online.

Saved files browser

There is a new screen in the app that lists all files you have received. You can open them directly from the app without navigating to the save directory manually. In earlier versions, received files went to a folder on disk and you had to find them yourself.

File persistence

Shared files now persist across app restarts. In v0.2.0, if you restarted the app, you had to re-add every file you were sharing. Now the file list is saved to disk and restored on launch. If a file was deleted from disk while the app was closed, it is pruned automatically on startup.

Resumable downloads

Incomplete transfers resume automatically when the same peer reconnects. The download state is tracked in an encrypted registry on disk, keyed by HMAC tags derived from the peer's identity. If you connect to a different peer or switch to incognito mode, the registry starts clean. No data from a previous peer leaks to the next one.

Unshare

You can remove individual files from sharing without disconnecting. The peer is notified and the file disappears from their list. The file stays on your disk.

Bonjour discovery

Devices on the same local network discover each other automatically via Bonjour (mDNS). This is how an iPhone finds a Mac on the same WiFi without exchanging codes through the relay.

Presence

Contacts now show online/offline status in real time. The presence system uses directional tokens so you do not see your own heartbeats reflected back as a false "online" indicator.

Disconnect detection

The UI returns to the connect screen within a few seconds of the peer dropping. In earlier versions, the app could stay on the connected screen indefinitely after the peer disappeared.

iOS background notifications

On iOS, the app warns you when it is about to be suspended by the OS. You get an immediate notification when the app goes to background, and a second warning at 2.5 minutes before iOS kills the connection.

Bug fixes

The data relay fallback path was completely broken. If two peers could not connect directly and fell back to the bridge relay, the transfer would fail silently. This is fixed.

A malicious peer could send a crafted length header to the SecureReader and cause an out-of-memory allocation. The allocation is now capped.

Connections could hang indefinitely if the P2P accept never completed. There is now a 15-second deadline.

The event channel was dropping the newest events when the buffer was full, and the transfer counter could underflow to a negative number. Both are fixed.

Health status and reconnect events were not reaching the mobile UI. They are now wired through correctly.

CLI

The kd standalone CLI now has full feature parity with the interactive REPL. Ten new commands: unshare, add-as, cancel-download, progress, poll-event, incognito, peer-info, version, and more. The CLI also prunes stale files before listing and broadcasts presence on startup.

Platforms

Desktop binaries (macOS, Linux, Windows) are available now. iOS and Android are being submitted to the stores. The mobile apps use the same Go + Rust core compiled as a framework (xcframework on iOS, AAR on Android), so the protocol, encryption, and file handling are identical across platforms.

GitHub: github.com/KeibiSoft/KeibiDrop
Release: v0.3.0 binaries
Homebrew: brew tap keibisoft/keibidrop && brew install keibidrop
Chocolatey: choco install keibidrop

4 min read | KEIBIDROP Series | v0.1.0 Release | Technical Deep Dive | Benchmarks