# dwrs
**dwrs** is a parallel file downloader support, progress bars, and colorful output β written in Rust.
Itβs a fast, user-friendly alternative to tools like `wget`, designed for modern terminal workflows.



---
## β¨ Features
- π Parallel downloads (`--workers`)
- π Supports download lists from file
- π¦ Colorful terminal output and progress bars
- π `--continue` flag for resuming interrupted downloads
- π§ Lightweight and fast, built in pure Rust
---
## π¦ Installation
### Install via Cargo (recommended)
```bash
cargo install dwrs
````
Requires [Rust](https://rustup.rs) and Cargo.
### Install via nix
- Add to your flake:
```nix
inputs = {
dwrs.url = "github:Bircoder432/dwrs";
dwrs.inputs.nixpkgs.follow = "nixpkgs";
};
```
- And in your home manager:
```nix
{ pkgs, inputs, ... }:
{
imports = [ inputs.dwrs.homeManagerModules.dwrs ];
programs.dwrs.enable = true;
programs.dwrs.package = inputs.dwrs.packages.${pkgs.system}.dwrs;
programs.dwrs.settings = {
workers = 3;
bar_chars = "=>-";
template = "{spinner:.green} [{bar:30.cyan/blue}] {pos}/{len} ({percent}%) {msg}";
};
}
```
### Build from source
```bash
git clone https://github.com/bircoder432/dwrs.git
cd dwrs
cargo build --release
```
Binary will be in `target/release/dwrs`.
---
## π§βπ» Usage
Download a file:
```bash
dwrs --url https://example.com/file.iso
```
or
```bash
dwrs https://example.com/file.iso
```
Download with multiply workers
```bash
dwrs -w 20 https://example.com/file.iso
```
Specify custom output name:
```bash
dwrs --url https://example.com/file.iso --output my_file.iso
```
Download multiple files in parallel:
```bash
dwrs --url link1 link2 link3 --output out1 out2 out3 --jobs 3
```
Batch download from file (`urls.txt`):
```
https://example.com/image1.jpg img1.jpg
https://example.com/image2.jpg
```
```bash
dwrs --file urls.txt
```
Resume an interrupted download:
```bash
dwrs --url https://example.com/large_file.zip --continue
```
---
## π€ Contributing
Contributions, feedback, and feature suggestions are welcome!
Feel free to open issues or submit pull requests.
---