Progress reporting for gff — go fast fetch.
Features
- Display a progress bar and percentage when the download size is known.
- Show downloaded and expected file sizes.
- Display average download speed and estimated remaining time.
- Format sizes using binary units: KiB, MiB, and GiB.
- Update progress on a single terminal line.
- Report downloaded bytes when the total size is unknown.
Build from source
Requires Go 1.27.0 or newer.
git clone --branch v0.2.0 https://github.com/hexlabelposition/gff.git
cd gff
go build -o bin/gff ./cmd/gffUsage
./bin/gff https://example.com/
./bin/gff versionKnown limitations
Resume, retries, and concurrent downloads are planned.
Failed or interrupted downloads may leave incomplete files.
Progress output requires an ANSI-compatible terminal.
Redirected output contains terminal control sequences.
Ctrl+C may leave the progress line unfinished.
Validation
Automated tests cover progress calculations, formatting, callbacks,
known and unknown response sizes, empty responses, and progress line
completion after successful and failed downloads. CI checks pass.