#cli #async #performance #download-tool

app dlrs

Multi-protocol CLI download accelerator

3 releases

0.1.2 Aug 9, 2023
0.1.1 Aug 4, 2023
0.1.0 Aug 4, 2023

#451 in #performance

MIT license

520KB
597 lines

dlrs

dlrs is a multi-protocol download tool for the command line. Written in Rust, dlrs splits your downloads to speed them up where possible.

dlrs demo

Features

  • Split downloads: dlrs can split your download into multiple segments that are then pulled in parallel, dramatically speeding them up for hosts that limit download speeds per connection. This is the same technique used by tools such as IDM and XDM.
  • Use multiple hosts: Downloading a file hosted by multiple speed-limiting hosts? dlrs can download the same file from multiple sources in parallel!
  • Multiple protocols: dlrs supports HTTP/HTTPS and FTP/SFTP.
  • Lightweight: Written in Rust, dlrs comes packaged in a single binary at __ MB.
  • Remote Control (planned ) RPC interface to control a dlrs daemon. Can be used for remote automation and building graphical interfaces on top of dlrs.

Installation

While automated builds are planned, dlrs can be installed with cargo on any machine:

cargo install dlrs

Usage Examples

  • dlrs -s 2 https://example.org/some-linux.iso Download file with 2 splits.

How it works

The diagram describes most working parts of dlrs. It's close to what you'll find on reading the code.

dlrs concurrency diagram

License

The project is licensed under the MIT license.

Contributing

Both issues and pull requests are accepted. I welcome contributors to take a dig at making my terrible code less terrible. 🐙

Dependencies

~10–23MB
~343K SLoC