Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agourlay/dlm
Minimal HTTP download manager
https://github.com/agourlay/dlm
cli download-manager http
Last synced: 14 days ago
JSON representation
Minimal HTTP download manager
- Host: GitHub
- URL: https://github.com/agourlay/dlm
- Owner: agourlay
- License: apache-2.0
- Created: 2019-11-26T18:31:30.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-26T21:01:24.000Z (7 months ago)
- Last Synced: 2024-05-01T19:37:51.237Z (7 months ago)
- Topics: cli, download-manager, http
- Language: Rust
- Homepage:
- Size: 807 KB
- Stars: 56
- Watchers: 3
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# dlm
[![Build status](https://github.com/agourlay/dlm/actions/workflows/ci.yml/badge.svg)](https://github.com/agourlay/dlm/actions/workflows/ci.yml)
[![Crates.io](https://img.shields.io/crates/v/dlm.svg)](https://crates.io/crates/dlm)A minimal HTTP download manager that works just fine.
## Features
- read URLs from a text file (one entry per line)
- control maximum number of concurrent downloads
- resume interrupted downloads if possible (using HTTP range)
- automatically retry re-establishing download in case of timeout or hanging connection
- multi progress bars (made with [indicatif](https://github.com/mitsuhiko/indicatif))
- native support for proxies and redirects```
./dlm --help
Minimal download managerUsage: dlm [OPTIONS] --maxConcurrentDownloads --inputFile --outputDir
Options:
-M, --maxConcurrentDownloads
used to limit the number of downloads in flight
-i, --inputFile
input file with links
-o, --outputDir
output directory for downloads
-U, --userAgent
User-Agent header to be used by the HTTP client
--randomUserAgent
sets up a random User-Agent header to be used by the HTTP client
--proxy
configure the HTTP client to use a proxy
-A, --accept
Accept header to be used by the HTTP client
-r, --retry
configure the number of retries in case of network error [default: 10]
--connectionTimeoutSecs
configure connection timeout in seconds for the HTTP client [default: 10]
-h, --help
Print help
-V, --version
Print version```
Example:
```
./dlm --inputFile ~/dlm/links.txt --outputDir ~/dlm/output --maxConcurrentDownloads 2
```## Installation
### Releases
Using the provided binaries in https://github.com/agourlay/dlm/releases
### Crates.io
Using Cargo via [crates.io](https://crates.io/crates/dlm).
```bash
cargo install dlm
```