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并发

Download history 94/week @ 2024-05-03 143/week @ 2024-05-10 118/week @ 2024-05-17 162/week @ 2024-05-24 114/week @ 2024-05-31 189/week @ 2024-06-07 49/week @ 2024-06-14 106/week @ 2024-06-21 146/week @ 2024-06-28 149/week @ 2024-07-05 203/week @ 2024-07-12 130/week @ 2024-07-19 96/week @ 2024-07-26 109/week @ 2024-08-02 154/week @ 2024-08-09 86/week @ 2024-08-16

每月 489 次下载
用于 8 crates

MIT 许可证

300KB
567

Trauma

Crates.io Documentation ci

Tokio Rust 异步通用下载管理器

描述

Trauma 是一个简化并美化 HTTP(s) 下载的库。下载操作异步执行,并在屏幕上绘制进度条以帮助监控过程。

screenshot

特性

  • 仅库
  • 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(())
}

更多示例可以在 示例 文件夹中找到。它们有详细的注释,并将指导您了解此库的不同功能。

为什么还需要另一个下载管理器

在开始这个项目之前,我在互联网上花了一些时间寻找,尽量不重复造轮子。我也发现了一些有趣的项目!

然而,它们几乎都已被废弃

因此,我决定编写 trauma

依赖项

~12–25MB
~359K SLoC