MailFerry v2.0.0 — IMAP Migration & Sync
Superseded release
This version contains known issues that have been resolved in v2.0.3. Users should upgrade to the latest stable release. This release is retained for historical and reproducibility purposes.
MailFerry v2.0.0 — Stable Release
High-Performance Native IMAP Migration Engine.
The complete native Go rewrite of MailFerry, published as the stable
v2.0.0 after three release candidates and a full internal release gate:
data integrity, idempotency, multi-process coordination, dry-run
zero-mutation and dedup-safety verification all passed on the exact
source commit this release was built from.
One static binary per platform — no Python, no imapsync, no runtime
dependencies. MailFerry never expunges or deletes mail during
migration, in any mode.
Everything in v2.0.0
- Native IMAP engine — streaming FETCH→APPEND, LITERAL+,
STARTTLS/SSL, COMPRESS=DEFLATE, watchdogs, per-host budgets - Bubble Tea TUI + headless parity — live dashboard, ten F1–F10
views, automatic TTY detection,--no-tui, graceful shutdown - SQLite State Database — per-message commits, resumable,
duplicate-free adoption, ack-lost APPEND reconciliation,
native per-OS locations, lazy creation,mailferry.dbcanonical - Self-healing — stall detection, Recovery Mode, progressive
isolation, persistent Failed Message Registry, COMPLETED WITH
WARNINGS - Multi-instance — shared State Database, atomic claiming, leases,
heartbeats, automatic takeover, clear "Mailbox already active"
reporting (verified with real OS processes, incl. kill-9 reclaim) - Whole-file CSV validation — every error in one pass; canonical
src*/dst*columns; obsolete v1 headers rejected with a rename hint --dry-run— mutating IMAP commands blocked inside the client
before any byte reaches the wire (proven: zero mutations observed)- ISO 8601 date-range migration —
--from/--to, inclusive,
INTERNALDATE-authoritative, persisted window, deterministic resume mailferry dedup— analysis by default;--executeis
reversible (quarantine move /\Deletedflag, EXPUNGE never
issued); strong multi-factor matching; interruption-safemailferry attach— read-only live monitor of running
migrations; never disturbs workers--portable— self-contained layout beside the executable- Zero-side-effect informational commands · restrictive 0700/0600
permissions · credential redaction everywhere
Notes
- macOS: binaries are not yet Developer-ID signed or notarised —
Gatekeeper will ask for a one-time "Open Anyway" approval
(guide).
This does not indicate malware; signing/notarisation is planned. - Linux amd64 was runtime-tested end-to-end; the other five targets are
cross-compiled from the same verified source (macOS arm64 previously
runtime-tested by the maintainer during the RC programme). - Upgrading from rc.2/rc.3: existing mailferry.db and mailferry.toml
are fully compatible — schema changes are additive; nothing to
delete or migrate.
Verify downloads: shasum -a 256 -c SHA256SUMS
Issues: https://github.com/ajsap/mailferry/issues
Author: Andy Saputra andy@saputra.org · Licence: GNU AGPL v3.0