FastGet

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)