11 个稳定版本
2.2.5 | 2024 年 6 月 7 日 |
---|---|
2.2.4 | 2023 年 9 月 19 日 |
2.2.3 | 2023 年 5 月 14 日 |
2.2.1 | 2023 年 3 月 6 日 |
1.0.0 | 2022 年 3 月 29 日 |
#132 在 并发
每月 489 次下载
用于 8 crates
300KB
567 行
Trauma
Tokio Rust 异步通用下载管理器
描述
Trauma 是一个简化并美化 HTTP(s) 下载的库。下载操作异步执行,并在屏幕上绘制进度条以帮助监控过程。
特性
- 仅库
- HTTP(S) 下载
- 支持通过代理下载
- 通过提供 URL 列表下载文件
- 可以重命名下载的文件
- 可以配置下载管理器
- 下载目录
- 最大并发请求数
- 重试次数
- 恢复下载(如果远程服务器支持)
- 自定义 HTTP 头
- 异步 w/ Tokio
- 进度条 w/ indicatif
- 显示单个进度
- 显示总进度
- 可以自定义进度条
- 自定义格式
- 自定义进度样式
- 在屏幕上显示或完成时清除
- 隐藏任意或所有进度条
- 添加预配置样式
用法
将以下内容添加到您的 Cargo.toml
[dependencies]
trauma = "2"
快速开始
use std::path::PathBuf;
use trauma::{download::Download, downloader::DownloaderBuilder, Error};
#[tokio::main]
async fn main() -> Result<(), Error> {
let reqwest_rs = "https://github.com/seanmonstar/reqwest/archive/refs/tags/v0.11.9.zip";
let downloads = vec![Download::try_from(reqwest_rs).unwrap()];
let downloader = DownloaderBuilder::new()
.directory(PathBuf::from("output"))
.build();
downloader.download(&downloads).await;
Ok(())
}
更多示例可以在 示例 文件夹中找到。它们有详细的注释,并将指导您了解此库的不同功能。
为什么还需要另一个下载管理器
在开始这个项目之前,我在互联网上花了一些时间寻找,尽量不重复造轮子。我也发现了一些有趣的项目!
然而,它们几乎都已被废弃
- DLM: https://github.com/agourlay/dlm
- 活跃,但仅是一个二进制/CLI 工具
- Snatch: https://github.com/derniercri/snatch
- 自 2017 年 9 月起不活跃
- 建议切换到 Zou
- Zou: https://github.com/k0pernicus/zou
- 自 2017 年 10 月起不活跃
- Duma: https://github.com/mattgathu/duma
- 自 2020 年 11 月起不活跃
- Siwi: https://github.com/rs-videos/siwi-download
- 自2021年3月起不活跃
- 下载器: https://github.com/hunger/downloader
- 垂死的项目
- 没有回答问题/PR
- 只有自动化更新被合并
- 自2021年2月以来没有发布
因此,我决定编写 trauma
。
依赖项
~12–25MB
~359K SLoC