https://github.com/cdhtlr/goparalleldownload
Golang basic file downloader using Accept-Ranges for parallel downloads to download a file in efficient way with the help of concurrency.
https://github.com/cdhtlr/goparalleldownload
accept-range concurrency content-length downloader fast golang high-performance high-speed http parallel range-get
Last synced: 3 months ago
JSON representation
Golang basic file downloader using Accept-Ranges for parallel downloads to download a file in efficient way with the help of concurrency.
- Host: GitHub
- URL: https://github.com/cdhtlr/goparalleldownload
- Owner: cdhtlr
- License: mit
- Created: 2023-02-13T22:31:57.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-13T22:32:31.000Z (over 2 years ago)
- Last Synced: 2025-01-11T06:46:13.529Z (10 months ago)
- Topics: accept-range, concurrency, content-length, downloader, fast, golang, high-performance, high-speed, http, parallel, range-get
- Language: Go
- Homepage:
- Size: 13.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GoParallelDownload
Golang basic file downloader using Accept-Ranges for parallel downloads to download a file in efficient way with the help of concurrency.
If a URL supports http header - `Accept-Ranges`, it will be divided into several parts and download it concurrently. Otherwise, the files will still be downloaded but not in parallel

## QuickStart
```go
go get -u github.com/cdhtlr/GoParallelDownload
```
# how does it work?
* Gets head of http response
* Initializes go routines for partial downloads if range downloads are supported
* Run them simultaneously until all is Done
## Compile command
CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w -extldflags=-static" -a -o downloader.exe .
## Disclaimer
This program comes with no warranty. You must use this program at your own risk.
This program slightly copies the source code from Raviraa Speedtest
### Note
- Using a large number of connections to a single URL can lead to DOS attacks.
## Todo
* Performs memory efficiency without debug.FreeOSMemory()