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

  • Done
    Project foundation

    Rust workspace, CI placeholder, justfile, MIT license, repo-local agent rules.

  • Done
    Phase 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.

  • Done
    Phase 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.

  • Active
    Phase 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.

  • Done
    Phase 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.

  • Done
    Phase 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.

  • Done
    Phase 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.

  • Active
    Phase 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.

  • Active
    Phase 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

  • Planned
    Phase 5 — Protocol hardening

    Cancellation, trust confirmation UX, and trust enforcement in the transfer path.

  • Done
    Phase 6 — TUI

    The interactive shell, panes, picker navigation, keybindings, help screen, ferry-core send actions, trust confirmation modal, and transfer error presentation are in.

  • Active
    Phase 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.

  • Active
    Phase 9 — Release packaging

    Artifact packaging and crates.io publishing are configured. Signing mechanism and demo media remain.

  • Planned
    Phase 10 — 1.0 documentation

    Architecture, discovery, security, performance, release, and hosted-send design docs are in; man page generation remains optional.

  • Active
    Phase 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