Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Code-Hex/pget
The fastest, resumable file download client
https://github.com/Code-Hex/pget
concurrency download downloader fast go golang http parallel pget resume
Last synced: about 1 month ago
JSON representation
The fastest, resumable file download client
- Host: GitHub
- URL: https://github.com/Code-Hex/pget
- Owner: Code-Hex
- License: mit
- Created: 2016-06-30T08:48:30.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2023-10-19T12:12:50.000Z (about 1 year ago)
- Last Synced: 2024-10-29T17:40:45.731Z (about 1 month ago)
- Topics: concurrency, download, downloader, fast, go, golang, http, parallel, pget, resume
- Language: Go
- Homepage:
- Size: 1020 KB
- Stars: 1,137
- Watchers: 24
- Forks: 78
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-ops - Code-Hex/pget - 06-30|2023-10-19 | Golang 编写的可断点续传的文件下载客户端 | (Download-Tools)
- awesome-golang-repositories - pget
- awesome-discoveries - pget - parallel file download client _(`Go`)_ (CLI Utilities)
README
Pget - The fastest file download client
=======[![.github/workflows/main.yaml](https://github.com/Code-Hex/pget/actions/workflows/main.yaml/badge.svg)](https://github.com/Code-Hex/pget/actions/workflows/main.yaml)
[![codecov](https://codecov.io/gh/Code-Hex/pget/branch/master/graph/badge.svg?token=jUVGnY7ZlG)](undefined)
[![Go Report Card](https://goreportcard.com/badge/github.com/Code-Hex/pget)](https://goreportcard.com/report/github.com/Code-Hex/pget)
[![GitHub release](https://img.shields.io/github/release/Code-Hex/pget.svg)](https://github.com/Code-Hex/pget)
[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)**Ad**: I'm currently developing a new date and time library [synchro](https://github.com/Code-Hex/synchro) for the modern era. please give it ⭐!!
## Description
Multi-Connection Download using parallel requests.
- Fast
- Resumable
- Cross-compiled (windows, linux, macOS)This is an example to download [linux kernel](https://www.kernel.org/). It will be finished between 15s.
![pget](https://user-images.githubusercontent.com/6500104/147878414-321c57ad-cff2-40f3-b2a4-12c30ff1363f.gif)
## Disclaimer
This program comes with no warranty. You must use this program at your own risk.
### Note
- Using a large number of connections to a single URL can lead to DOS attacks.
- The case is increasing that if you use multiple connections to 1 URL does not increase the download speed with the spread of CDNs.
- I recommend to use multiple mirrors simultaneously for faster downloads (And the number of connections is 1 for each).## Installation
### Homebrew
$ brew install pget
### Go
$ go install github.com/Code-Hex/pget/cmd/pget@latest
## Synopsis
This example will be used 2 connections per URL.
$ pget -p 2 MIRROR1 MIRROR2 MIRROR3
If you have created such as this file
cat list.txt
MIRROR1
MIRROR2
MIRROR3You can do this
cat list.txt | pget -p 2
## Options
```
Options:
-h, --help print usage and exit
-p, --procs the number of connections for a single URL (default 1)
-o, --output output file to
-t, --timeout timeout of checking request in seconds
-u, --user-agent identify as
-r, --referer identify as
--check-update check if there is update available
--trace display detail error messages
```## Pget vs Wget
URL: https://mirror.internet.asn.au/pub/ubuntu/releases/21.10/ubuntu-21.10-desktop-amd64.iso
Using
```
time wget https://mirror.internet.asn.au/pub/ubuntu/releases/21.10/ubuntu-21.10-desktop-amd64.iso
time pget -p 6 https://mirror.internet.asn.au/pub/ubuntu/releases/21.10/ubuntu-21.10-desktop-amd64.iso
```
Results```
wget 3.92s user 23.52s system 3% cpu 13:35.24 total
pget -p 6 10.54s user 34.52s system 25% cpu 2:56.93 total
````wget` 13:35.24 total, `pget -p 6` **2:56.93 total (6x faster)**
## Binary
You can download from [here](https://github.com/Code-Hex/pget/releases)
## Author
[codehex](https://twitter.com/CodeHex)