DEV Community

Cover image for I built Iriszip, an encrypted P2P file transfer that runs in the browser
Scar
Scar

Posted on

I built Iriszip, an encrypted P2P file transfer that runs in the browser

I wanted a simple way to move a file between two devices without installing an app, creating an account, or uploading it somewhere first.

So I built Iriszip.

Open the site on both devices, scan a QR code or enter the 9-digit pairing code, and send files or text directly from the browser.

Iriszip Send screen showing the 9-digit pairing code and QR code

On the same network, transfers can stay device-to-device and run at LAN speed. Across the internet, Iriszip tries a direct WebRTC connection first and falls back to a relay when a direct connection isn't possible. The relay only handles ciphertext.

No file or message content is persisted on the server. On relayed connections, encrypted data only passes through memory, and session state is discarded when the session ends.

The security side ended up becoming a much bigger part of the project than I originally expected. Iriszip uses end-to-end encryption, and the cryptographic protocol design went through an independent security review.

Iriszip connected session showing direct LAN transfer, chat, file delivery and matching SHA-256 digests

Everything is open source. The browser client is MIT-licensed, the crypto core is Apache-2.0, and the server is AGPL-3.0. The server can also be self-hosted with Docker Compose.

Try it: https://iriszip.com

Source: https://github.com/iris-zip/iris

This is still a solo project and it only recently went public. I'd especially like feedback from people working with WebRTC, cryptography, networking, privacy, or self-hosted software.

If you find something weird, manage to break something, or think part of the design could be better, I'd genuinely like to hear about it.

Top comments (0)