A HTTP downloader accelerator like axel, but faster.
gofast is a http-only downloader that uses multiple connections through concurrency relying in Range Request. It can burst your download speed just by spliting the whole GET request in N connections.
- Normal HTTP download if the server does not accept ranges
- HTTP concurrency download
- Control of how many parallel connections per host
There is a couple of options that you can use:
$ gofast -h A HTTP downloader accelerator using concurrency Usage: gofast [flags] Flags: -h, --help help for gofast -n, --num-tasks int Number of tasks to download (default 8) -o, --output string File output name
Simple usage:
$ gofast https://releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso Starting concurrent download of ubuntu-20.04.1-desktop-amd64.iso Downloading 100% |...| (2.6/2.6 GB, 10.634 MB/s) Downloaded in 4m9.761532636s
Downloading the same file using axel:
$ axel -a https://releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso Initializing download: https://releases.ubuntu.com/20.04.1/ubuntu-20.04.1-desktop-amd64.iso File size: 2785017856 bytes Opening output file ubuntu-20.04.1-desktop-amd64.iso.0 Starting download Connection 3 unexpectedly closed Connection 0 finished Connection 1 finished Connection 2 finished Connection 1 finished Connection 3 finished Connection 0 finished Downloaded 2.59375 Gigabyte(s) in 4:32 minute(s). (9969.09 KB/s)
You can go to releases and grab the latest one, or manually build (Tested on Linux and Windows).
$ git clone https://github.com/aandersonl/gofast && cd gofast && go build
Or
go get github.com/aandersonl/gofast
Make sure to have GOROOT variable configured to the installation above works.
Any bugs or enhancement feel free to open a issue or pull request!