高速にファイルがダウンロード出来るGo製のクライアント「Pget」の紹介です。
サーバーからファイルをダウンロードするツールと言われれば"GNU Wget"や"cURL"が思い浮かびそうな感じじゃないでしょうか。Wget等のツールは、サーバー上からバイナリファイルやソースコードを取得する時によく使うので、特にLinuxサーバーを運用している人にはお馴染みだと思います。
上記のツールを使っていて、今までダウンロード速度を意識したことはありませんでしたが " Wgetより高速にファイルがダウンロード出来る " と謳われるダウンロードクライアントが「Pget」です。
pgetはGO言語で書かれており、コマンドライン上で動作します。
Pget vs Wget(* GitHub上のレポジトリから)
URL: http://ubuntutym2.u-toyama.ac.jp/ubuntu/16.04/ubuntu-16.04-desktop-amd64.iso
# wget
time wget http://ubuntutym2.u-toyama.ac.jp/ubuntu/16.04/ubuntu-16.04-desktop-amd64.iso
wget 3.92s user 23.52s system 3% cpu 13:35.24 total
# pget
time pget -p 6 http://ubuntutym2.u-toyama.ac.jp/ubuntu/16.04/ubuntu-16.04-desktop-amd64.iso
pget -p 6 10.54s user 34.52s system 25% cpu 2:56.93 total
上のPget VS Wgetでは1.4GBのファイルをwgetとpgetを使ってダウンロードに掛かった時間が計測されており、Wgetを使ってファイルをダウンロードした場合が"13分35秒"、Pgetを使った場合は"2分56秒"となっています。
上を見る限りWgetよりもPgetのほうが高速にファイルをダウンロード出来るようなので、実際に導入してみました!
Pgetのインストールは主に二種類あり、 go get
コマンドを使って行う方法と、Macをお使いであればHomebrewでインストールできます。
( * go getをコマンドを使ってインストールする場合は事前に Go が導入されている必要があります )
# go getでインストールする場合 #
# install
$ go get github.com/Code-Hex/pget/cmd/pget
# update
$ go get -u github.com/Code-Hex/pget/cmd/pget
# Mac OSでHomebrewでインストールする場合 #
brew tap Code-Hex/pget
brew install pget
導入が済めばコマンドライン上でpget
コマンドが使えるようになります。
$ pget
Pget v0.0.3, parallel file download client
Usage: pget [options] URL
Options: # オプション
-h, --help print usage and exit # ヘルプの表示
-v, --version display the version of pget and exit #バージョンの表示
-p, --procs split ratio to download file # 分割(並列)でダウンロードするオプション
-o, --output output file to PATH or FILENAME # 指定パス、又は指定ファイル名オプション
-t, --timeout timeout of checking request in seconds # タイムアウトのオプション
--check-update check if there is update available # 最新のPgetがリリースされたかチェック
--trace display detail error messages # エラーメッセージの表示
# 使い方
$ pget URL
# オプションを指定する場合
$ pget -p [num] URL
# e.x.p : pget -p 3 http://someFile......
使い勝手はwgetに似ており、wgetの沢山のオプションを省いてシンプルにした印象を受けました。
( wgetを使ったことがある人なら直感的にわかると思います )
せっかく導入したので、試しにcURL, Wget, Pgetの3つを使って ダウンロード速度を比較してみました。対象は25.8MBのnode.jsのソースファイルです。

3つのソフトを使って比較しましたが、 "Pgetが3.56秒"、"Wgetが5.43秒"、"cURLは9秒"となり、Pgetが一番ダウンロード速度が早い結果になりました!
以上がPgetの紹介でした。
PgetはGoで作られているので、Linux、Mac OSだけではなく、Windowsでも使えます。
( 各プラットフォームのバイナリファイルも公開されています )
大きなファイルをダウンロードしたい時に使うと便利なので、気になった人はゼヒ×2チェックしてみてください!
Github: Code-Hex/pget