Skip to content
/ got Public
forked from melbahja/got

Got: Simple golang package and CLI tool to download large files faster 🏃 than cURL and Wget!

Notifications You must be signed in to change notification settings

0pcom/got

 
 

Repository files navigation

Got.

Simple and fast concurrent downloader - forked from melbahja/got

Comparison

Comparison in cloud server:

[root@centos-nyc-12 ~]# time got -o /tmp/test -c 20 https://proof.ovh.net/files/1Gb.dat
URL: https://proof.ovh.net/files/1Gb.dat done!

real    0m8.832s
user    0m0.203s
sys 0m3.176s


[root@centos-nyc-12 ~]# time curl https://proof.ovh.net/files/1Gb.dat --output /tmp/test1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
								 Dload  Upload   Total   Spent    Left  Speed
100 1024M  100 1024M    0     0  35.6M      0  0:00:28  0:00:28 --:--:-- 34.4M

real    0m28.781s
user    0m0.379s
sys 0m1.970s

Installation

Build from source

mkdir -p $HOME/go/src/github.com/0pcom
cd $HOME/go/src/github.com/0pcom
git clone https://github.com/0pcom/got
cd got
go build cmd/got/got.go

Run from source

mkdir -p $HOME/go/src/github.com/0pcom
cd $HOME/go/src/github.com/0pcom
git clone https://github.com/0pcom/got
cd got
go run cmd/got/got.go --help

How It Works?

Got takes advantage of the HTTP range requests support in servers RFC 7233, if the server supports partial content Got split the file into chunks, then starts downloading and merging the chunks into the destinaton file concurrently.

About

Got: Simple golang package and CLI tool to download large files faster 🏃 than cURL and Wget!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 76.3%
  • Shell 23.7%