bucket_dl

Crates.iobucket_dl
lib.rsbucket_dl
version0.2.0
created_at2025-04-09 21:20:13.120509+00
updated_at2025-04-12 03:06:39.00384+00
descriptionA multithreaded downloader with the purpose of faster downloads by splitting it into several requests, rebuilding the data client-side.
homepage
repositoryhttps://github.com/Pybounce/bucket_dl
max_upload_size
id1627332
size64,976
(Pybounce)

documentation

README

[!Warning] This is still a work in progress. Yes there are issues, everything is okay.

bucket_dl

Tests Latest version

A multithreaded downloader with the purpose of faster downloads by splitting it into several requests, rebuilding the data client-side.

Features

  • When possible, splits download into 'buckets', each using a new thread and request.
  • Streams live download progress, ideal for visualising loading bars.
  • Cancellation of downloads
  • Retries failed buckets, creating a new thread/request up to x times.
  • Supports pausing and resuming downloads at any time.
  • Automatic pausing in the event of a crash.
  • Actual tests

Usage

[!Note] For more detailed usage, look at the examples/ directory.

  let mut client = DownloadClient::init(&url, &file_path);

  if let Ok(_) = client.begin_download().await {
    let mut stream = client.progress_stream();
    while let Some(bucket_progress) = stream.next().await {...}

    match client.status() {
      DownloadStatus::Finished => {...},
      _ => {...}
    }

  }

[!Warning] Always remember to check the status of the download, even after exhausting the progress updates.

Commit count: 65

cargo fmt