Skip to content

v0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 20 Apr 11:53
434e178

v0.2.0 — Modernization release

Large overhaul bringing gfile back to a modern stack after a long maintenance gap.
New wire protocol, substantially faster transfers, and a restructured codebase.

⚠️ Breaking changes. v0.2.0 is not backward-compatible with v0.1.x:

  • Wire protocol: a v0.1.x peer cannot talk to a v0.2.0 peer. Both sides must upgrade.
  • Go package layout: pkg/session/* was removed and replaced by pkg/transfer/{sender,receiver}. External importers will need to update.
  • CLI framework: migrated from urfave/cli to cobra; flag / subcommand syntax may differ. See gfile --help.
  • Go 1.12 → 1.26.2
  • pion/webrtc v2 → v4

Protocol (see PROTOCOL.md)

  • Framed control / data channels with versioning and proper dispatch
  • Streaming zstd compression (off by default for already-compressed payloads)
  • Multi-PC mode: --connections N (1..16) stripes a transfer across N parallel peer connections, working around the per-datachannel throughput ceiling on high-bandwidth / high-latency links

Performance

Same host, Darwin 24.6 arm64, 500 MB incompressible payload, median of 3 runs:

Config Throughput vs v0.1.0
single-PC, --loopback ~103 MB/s ~93×
multi-PC --connections 2, --loopback ~180 MB/s ~163×
multi-PC --connections 4, --loopback ~241 MB/s ~219×

Full details in PR #12.