mftp v0.1.130
·
30 commits
to master
since this release
First release since v0.1.101. Headline: a new in-band repair protocol, a supply-chain security fix, confirmed high-latency performance wins, and macOS/Windows support.
⚠️ Protocol
- Wire protocol bumped to v6. Sender and receiver must both be on v0.1.130+ for the QUIC/TCP direct path. (SFTP fallback is unaffected.)
✨ Features
- In-band incremental repair (protocol v5+). Missing/corrupt chunks are now re-requested over the control stream at the completion checkpoint (
ReceiverMessage::Retransmit, single-file), instead of aborting and resuming.
🔒 Security
- Verify cross-platform binary downloads before remote exec. When mftp pipes a downloaded binary to a remote host, it's now checksum-verified first — closes a supply-chain exec risk.
🚀 Performance
- 1-RTT QUIC startup (was 2 control round-trips) — measured −850 ms per connection at 400 ms RTT.
- Larger BBR initial congestion window (tunable) for faster ramp on high-BDP links.
- Socket-buffer default raised to 64 MiB + opt-in ACK frequency.
- Dropped redundant chunk copies in the FEC sender path.
🛡️ Reliability
- Hardened FEC wire/manifest validation; overflow checks enabled.
- Attributable errors for unreconstructable FEC stripes.
- Resume now surfaces resume/discard status; durability model documented.
💅 UX
- Tolerate common
--trustfingerprint formats (colons, whitespace, case). - Hard-fail invalid
--fecspecs; clearer CLI examples and download prompt.
🖥️ Platforms
- macOS (x86_64 + aarch64) and Windows now built and tested in CI.