Trauma

Crates.io Documentation ci

Tokio Rust Asynchronous Universal download MAnager

Description

`Trauma is a library simplifying and prettifying HTTP(s) downloads. The downloads are executed asynchronously and progress bars are drawn on the screen to help monitoring the process.

screenshot

Features

Usage

Add this to your Cargo.toml:

toml [dependencies] trauma = "1.0"

Quick start

```rust use std::path::PathBuf; use trauma::{download::Download, downloader::DownloaderBuilder, Error};

[tokio::main]

async fn main() -> Result<(), Error> { let reqwestrs = "https://github.com/seanmonstar/reqwest/archive/refs/tags/v0.11.9.zip"; let downloads = vec![Download::tryfrom(reqwest_rs).unwrap()]; let downloader = DownloaderBuilder::new() .directory(PathBuf::from("output")) .build(); downloader.download(&downloads).await; Ok(()) } ```

More examples can be found in the examples folder.

Why another download manager

Before starting this project, I spent some time searching the internet, trying not to reinvent the wheel. And I did find a bunch of interesting existing projects!

However they are almost all abandoned:

As a result, I decided to write trauma.

Potential ideas for future versions