fastget: A CLI tool as well as go library to ultrafast download files over HTTP(s).
DISCLAIMER: FastGet performance heavily reliant on the network and CPU performance of the client machine. More importantly HTTP(s) endpoint must allow partial requests presenting Accept-Ranges
and accepting Range
headers.
fastget
available as Commnad-Line tool and Go library.
Commnad-Line
fastget [options] <URL_TO_DOWNLOAD>
Go Library
fg, err := fastget.NewFastGetter("http://speedtest.tele2.net/10MB.zip")
if err != nil {
panic(err)
}
result, err := fg.Get()
if err != nil {
panic(err)
}
file := result.OutputFile
elapsedTime := result.ElapsedTime
Installation
# mac
brew install pgollangi/tap/fastget
# go
go get github.com/pgollangi/fastget/cmd/fastget
❯ fastget
Usage:
fastget $fileURL [flags]
Examples:
$ fastget https://file.example.com // Basic Usage
$ fastget http://speedtest.tele2.net/10MB.zip -H "Authorization: Basic ASYFASUF" // Custom Header
$ fastget http://speedtest.tele2.net/10MB.zip -w 6 // Increased no. of workers
$ fastget -v
Flags:
-d, --debug show debug information
-H, --header stringArray output file to be written
-h, --help help for fastget
-o, --output string output file to be written (default ".")
-v, --version show fastget version information
-w, --workers int use <n> parellel threads (default 3)