Native discovery
mDNS discovery lets you send to stephen-mbp or a fingerprint prefix instead of a raw IP address. Observed peers merge by fingerprint; aliases stay lookup hints.
Local-first file transfer
FileFerry is a single binary named `ferry`. Today it transfers files and directories over native QUIC with manifest-backed skip and resume, including mDNS peer discovery, direct-address fallback, and long-running daemon receive mode. Richer trust UX and the TUI are the next native slices.
mDNS discovery lets you send to stephen-mbp or a fingerprint prefix instead of a raw IP address. Observed peers merge by fingerprint; aliases stay lookup hints.
QUIC via quinn powers the current direct-address fast path. The first implementation uses one bidirectional stream per transfer session while the protocol settles.
Every transfer carries a BLAKE3-hashed manifest. Existing files skip, partial files resume from a verified offset, anything else starts fresh.
Human progress in the terminal, --json for newline-delimited events to stdout, documented exit codes for cron and CI.
ferry daemon keeps a direct receiver alive across sessions and persists its resolved listen/destination settings in daemon.toml.
Persistent identities and a trust store exist today. Fingerprint confirmation and transfer-path TOFU enforcement are still planned hardening work.
A ratatui interface with peers, queue, picker, and log panes is on the roadmap. The current crate contains state tests, not the finished interactive app.
Both the discovered-peer and direct-address flows below run today.
# Receive in the foreground today
ferry recv --listen 0.0.0.0:53318 --dest ~/Downloads/ferry
ferry daemon --listen 0.0.0.0:53318 --dest ~/Downloads/ferry
# Send through discovery today
ferry send stephen-mbp ./vacation.zip
# Or send directly today
ferry send 192.168.1.42:53318 ./vacation.zip
# Scripted today: newline-delimited JSON on stdout
ferry --json send 192.168.1.42:53318 ./backup.tar.zst | jq .
FileFerry is pre-1.0. The native LAN binary is the focus. The public website you are reading is part of Phase 3.
Done Direct-address QUIC transfer with TLS, BLAKE3, temp-file finalize, loopback smoke.
Done Directory walks, multi-file sessions, path safety, skip, resume from verified offsets.
Active The ferry-site crate, built with Leptos and Axum. Deployed self-hosted behind Caddy on Ubuntu.
Core path done Native mDNS announce/browse, registry merge, trust-store groundwork, and peer-targeted send are in.