Select a file, and Dropzone starts an ephemeral HTTP server on your machine, generates a single-use capability URL, and presents a local vector QR code. Any device on the same local network (phone, tablet, or another computer) can scan the code and download the file directly in a web browser. The receiving device needs no client app, account, or internet connection.
Once sharing is stopped, the server shuts down and the link is immediately invalidated.
- No client installation: Receivers only need a web browser.
- Local-only streaming: Transfers stay on the local network without touching external servers.
- Constant memory usage: Files are streamed through bounded buffers rather than loaded into RAM.
- Ephemeral access: Cryptographically random capability tokens ensure URLs cannot be guessed and expire when sharing stops.
- GNOME native: Built with GTK 4, Libadwaita, and vector Cairo QR rendering.
- Open GNOME Builder.
- Select Open Project... and choose this repository.
- Builder detects the Flatpak manifest (
build-aux/io.github.dragonGR.Dropzone.Devel.json) and configures the GNOME 50 SDK environment automatically. - Click Run (or press
Ctrl+Shift+Space).
meson setup build
ninja -C build
ninja -C build test
sudo ninja -C build install# Run tests
cargo test
# Check formatting and lints
cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
# Run Dropzone
cargo runDropzone is localized using GNU gettext. Translations are stored in the po/ directory.
To run Dropzone with a specific language (for example, Greek):
LANGUAGE=el cargo runTo update the translation template (po/dropzone.pot) after modifying user-facing strings:
ninja -C build dropzone-potDropzone binds to an OS-assigned ephemeral port on your LAN IP (for example, http://192.168.1.42:43521/s/...).
If a phone or receiving device on the same local network cannot open the link or the connection times out, your host firewall is likely dropping incoming traffic on high unprivileged ports.
Allow connections from your local subnet:
sudo ufw allow from 192.168.1.0/24Or allow traffic on your active wireless interface:
sudo ufw allow in on wlan0Add your local subnet to the trusted zone:
sudo firewall-cmd --add-source=192.168.1.0/24 --zone=trusted --permanent
sudo firewall-cmd --reload