MailFerry v2.0.0-rc.2 — IMAP Migration & Sync
Pre-releaseMailFerry v2.0.0-rc.2 — Release Candidate
High-Performance Native IMAP Migration Engine.
This is the first published Release Candidate of MailFerry v2.0.0 —
the complete rewrite of MailFerry from Python to Go. It exists to gather
real-world testing before v2.0.0 is declared production-ready. (An
earlier internal candidate, rc.1, was superseded by this build before
public release; its content is documented in the changelog.)
This is a pre-release, not the latest stable version. v1.0.0
(Python) remains the last stable release. Test carefully and keep your
source mailboxes until you have verified results. MailFerry never
expunges or deletes mail on either server, in any mode.
Highlights of the Go rewrite
- Native standalone binaries — one static executable per platform;
no Python, no Perl, no imapsync, no external runtime. macOS
(Apple Silicon + Intel), Linux (amd64 + arm64), Windows (amd64 + arm64). - Native IMAP engine — pipelined streaming FETCH→APPEND with bounded
memory, LITERAL+, STARTTLS/SSL, COMPRESS=DEFLATE, watchdogs, per-host
connection budgets. - Bubble Tea + Lip Gloss TUI — live dashboard plus nine more views on
F1–F10 (digit aliases for SSH/tmux), detail popups, search, follow-mode
logs, pause/retry controls, graceful-shutdown dialog; automatic TTY
detection with a--no-tuiheadless mode driving the same engine. - SQLite state management — per-message commit protocol (pure Go, no
CGO); resumable and duplicate-free; ack-lost APPEND reconciliation. - Self-healing — stall detection, connection recovery, Recovery Mode
with progressive failed-message isolation, persistent Failed Message
Registry, COMPLETED WITH WARNINGS semantics. - Multi-instance clustering — shared State Database, atomic mailbox
claiming, automatic takeover from offline workers.
New since the rc.1 build
- Native OS-standard application paths, resolved centrally and
created lazily:
macOS~/Library/Application Support/MailFerry/· Linux XDG
($XDG_CONFIG_HOME,$XDG_STATE_HOME,$XDG_CACHE_HOME) · Windows
%APPDATA%/%LOCALAPPDATA%. Precedence: CLI flags → mailferry.toml →
native default. mailferry.dbis the canonical per-user State Database (replacing
the./migration.dbworking-directory default). An old development
./migration.dbis detected and reported with explicit choices —
never silently adopted or duplicated.- Zero-side-effect informational commands:
--help,version,
about,changelog,roadmap,config pathscreate nothing — no
configuration, directories, logs or database. Configuration is
generated on the first operational run or explicitly via
mailferry config(regression-tested). - Correct canonical slogan: High-Performance Native IMAP Migration
Engine — enforced by an automated identity test. - Restrictive file permissions (0700 directories, 0600 config/DB/logs
where the platform supports POSIX permissions). - Go-native documentation: rewritten README and CONTRIBUTING, new
end-user macOS installation guide
(docs/INSTALLATION-MACOS.md).
Known limitations (please test and report)
- Not implemented yet (planned for final v2.0.0): deduplication
mode, date-range migration (--from/--to),mailferry attach,
--portablemode. - macOS binaries are not Developer-ID signed and not notarised —
Gatekeeper will ask for a one-time Open Anyway approval on
downloaded binaries. Expected for this RC; see the
macOS installation guide.
Never disable Gatekeeper. - Clustering and COMPRESS=DEFLATE are automated-suite-tested and still
under real-world validation (--compress offis the conservative
fallback while diagnosing). - Windows console support is cross-compiled with limited interactive
testing.
Install & verify
Download the binary for your platform, verify its checksum against
SHA256SUMS, make it executable, and run mailferry version — it must
report MailFerry v2.0.0-rc.2.
shasum -a 256 -c SHA256SUMS # sha256sum -c on LinuxIssues and feedback: https://github.com/ajsap/mailferry/issues
Author: Andy Saputra andy@saputra.org · Licence: GNU AGPL v3.0