Status
What ships today, and what is next
FileFerry is pre-1.0. The native binary already moves files between machines over QUIC through either native mDNS discovery or direct addresses, with manifest, skip, and resume. The rest of the roadmap follows.
Today
- DoneProject foundation
Rust workspace, CI placeholder, justfile, MIT license, repo-local agent rules.
- DonePhase 1 — Direct-address QUIC transfer
ferry recv --listen / ferry send <ip:port> <file>, persistent identity, self-signed TLS, BLAKE3 receive validation, temp-file finalize, documented exit codes, loopback smoke.
- DonePhase 2 — Manifest, directories, resume
Directory walking with metadata, multi-file sessions, destination path safety, skip for matching files, prefix verification, resume from verified offset, transfer event stream.
- ActivePhase 3 — Public website at fileferry.app
This site. Leptos + Axum SSR, self-hosted behind Caddy on an Ubuntu VM. Install and release pages fill in as packaging lands.
- DonePhase 4 — Native discovery and peer registry
mDNS announce/browse on _ferry._udp.local., fingerprint-keyed registry merge, trust-store persistence, ferry peers/trust/forget commands, and peer-targeted send.
- DonePhase 6 — TUI send flow
Interactive no-args dispatch, Ratatui peers/queue/picker/log panes, file-picker navigation, keybindings, help overlay, core send actions, trust confirmation, progress updates, and visible transfer errors.
- DonePhase 7 — Daemon and JSON
ferry daemon, daemon.toml persistence, stable JSON output, Unix service examples, Windows service planning, JSON smoke tests, and headless PSK docs are in place.
- ActivePhase 8 groundwork
Loopback benchmark harness, generated destination path-safety checks, overwrite policy tests, and secret-redaction coverage are in; recorded performance runs and tuning remain.
- ActivePhase 9 release packaging
cargo-dist configuration, target triples, a tag-driven GitHub Actions release workflow, SHA-256 checksum publishing, crates.io metadata, and publish order are configured.
Roadmap
- PlannedPhase 5 — Protocol hardening
Cancellation, trust confirmation UX, and trust enforcement in the transfer path.
- DonePhase 6 — TUI
The interactive shell, panes, picker navigation, keybindings, help screen, ferry-core send actions, trust confirmation modal, and transfer error presentation are in.
- ActivePhase 8 — Performance and hardening
Benchmark harness and hardening tests are in. Recorded large-file, many-small-file, and 1GbE runs plus chunk/concurrency tuning remain.
- ActivePhase 9 — Release packaging
Artifact packaging and crates.io publishing are configured. Signing mechanism and demo media remain.
- PlannedPhase 10 — 1.0 documentation
Architecture, discovery, security, performance, release, and hosted-send design docs are in; man page generation remains optional.
- ActivePhase 11 — send.fileferry.app
Hosted web send portal remains separate from the native LAN product. Threat model, transport constraints, retention, abuse guardrails, and deployment plan are documented before implementation.
Performance targets
These are aspirational on commodity desktop hardware with NVMe storage and 1GbE. Numbers will be backed by the benchmark harness in Phase 8, not by marketing claims.
- Single large file
- ≥ 110 MB/s on the wire
- 10k × 4KB files
- ≥ 50 MB/s effective
- Resume detection
- < 5 s for a 50% complete 10 GB file