Downloader 1.0.4
See the version list below for details.
dotnet add package Downloader --version 1.0.4
NuGet\Install-Package Downloader -Version 1.0.4
<PackageReference Include="Downloader" Version="1.0.4" />
paket add Downloader --version 1.0.4
#r "nuget: Downloader, 1.0.4"
// Install Downloader as a Cake Addin #addin nuget:?package=Downloader&version=1.0.4 // Install Downloader as a Cake Tool #tool nuget:?package=Downloader&version=1.0.4
Downloader
๐ Fast and reliable multipart downloader with .Net Core 3.1+ supprting ๐
Downloader is a modern, fluent, asynchronous, testable and portable library for .NET. This is a multipart downloader with asynchronous progress events.
This library written in .Net Standard 2
and you can add that in your .Net Core
or .Net Framework
projects.
Sample Console Application
How to use
Get it on NuGet:
PM> Install-Package Downloader
Or via the .NET Core command line interface:
dotnet add package Downloader
Create your custom configuration:
var downloadOpt = new DownloadConfiguration()
{
ParallelDownload = true, // download parts of file as parallel or not
BufferBlockSize = 10240, // usually, hosts support max to 8000 bytes
ChunkCount = 8, // file parts to download
MaxTryAgainOnFailover = int.MaxValue, // the maximum number of times to fail.
OnTheFlyDownload = true, // caching in-memory mode
Timeout = 1000 // timeout (millisecond) per stream block reader
};
So, declare download service instance per download and pass config:
var downloader = new DownloadService(downloadOpt);
Then handle download progress and completed events:
downloader.DownloadProgressChanged += OnDownloadProgressChanged;
downloader.DownloadFileCompleted += OnDownloadFileCompleted;
Finally, start the download asynchronously. For example, download a .zip file:
var file = @"Your_Path\fileName.zip";
downloader.DownloadFileAsync("https://file-examples.com/fileName.zip", file);
// or
await downloader.DownloadFileTaskAsync("https://file-examples.com/fileName.zip", file);
For resume from last download, store downloader.Package
object and execute like this:
downloader.DownloadFileAsync(package);
// or
await downloader.DownloadFileTaskAsync(package);
Note: for complete sample see
Downloader.Sample
project from this repository.
Features at a glance
- Download files async and non-blocking.
- Cross-platform library to download any files with any size.
- Get real-time progress info of each block.
- Download file multipart as parallel.
- Handle any client-side or server-side exception none-stopping the downloads.
- Config your
ChunkCount
to define the parts count of the download file. - Download file multipart as in-memory mode or cache in temp.
- Store download package object to resume the download when you want.
- Get download speed or progress percentage in each progress event.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (11)
Showing the top 5 NuGet packages that depend on Downloader:
Package | Downloads |
---|---|
Wabbajack.Networking.Http
Package Description |
|
SquareMinecraftLauncher.Core
BaiBaoStudio |
|
EasyUpdate
Easy Update ๆไพ็ฎๅ็่ชๅจๆดๆฐๆๅกใ |
|
Orobouros
A fully-featured and modular online scraper tool. Yes we know the name is spelled wrong. Icon Credit: Hyliian @ DeviantArt |
|
Dove.Avalonia.Extensions.WebView
WebView Extensions for Avalonia. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Downloader:
Repository | Stars |
---|---|
2dust/v2rayN
A GUI client for Windows, Linux and macOS, support Xray and sing-box and others
|
Version | Downloads | Last updated | |
---|---|---|---|
3.3.3 | 23,412 | 1/13/2025 | |
3.3.2 | 132 | 1/13/2025 | |
3.3.1 | 15,231 | 11/28/2024 | |
3.3.0 | 1,389 | 11/20/2024 | |
3.2.1 | 7,574 | 10/4/2024 | |
3.2.0 | 1,820 | 9/22/2024 | |
3.1.2 | 31,428 | 6/30/2024 | |
3.1.0-beta | 765 | 1/2/2024 | |
3.0.6 | 102,958 | 6/6/2023 | |
3.0.5 | 407 | 6/3/2023 | |
3.0.4 | 65,053 | 3/11/2023 | |
3.0.3 | 4,729 | 1/29/2023 | |
3.0.2 | 1,183 | 1/7/2023 | |
3.0.1 | 5,384 | 11/2/2022 | |
3.0.0-beta | 203 | 10/12/2022 | |
2.4.1 | 12,253 | 9/21/2022 | |
2.4.0 | 1,144 | 9/16/2022 | |
2.3.9 | 533 | 9/14/2022 | |
2.3.8 | 902 | 9/5/2022 | |
2.3.7 | 1,786 | 8/23/2022 | |
2.3.6 | 658 | 8/20/2022 | |
2.3.5 | 79,561 | 5/6/2022 | |
2.3.4 | 1,232 | 5/3/2022 | |
2.3.3 | 5,487 | 2/23/2022 | |
2.3.2 | 1,512 | 1/24/2022 | |
2.3.1 | 664 | 1/2/2022 | |
2.3.0 | 5,261 | 11/15/2021 | |
2.2.9 | 10,742 | 8/12/2021 | |
2.2.8 | 39,763 | 4/1/2021 | |
2.2.7 | 732 | 3/31/2021 | |
2.2.6 | 3,805 | 3/26/2021 | |
2.2.5 | 1,047 | 3/24/2021 | |
2.2.4 | 701 | 3/19/2021 | |
2.2.3 | 2,890 | 3/1/2021 | |
2.2.2 | 827 | 2/24/2021 | |
2.2.1 | 412 | 2/23/2021 | |
2.2.0 | 445 | 2/22/2021 | |
2.1.4 | 427 | 2/21/2021 | |
2.1.3 | 395 | 2/19/2021 | |
2.1.2 | 571 | 2/14/2021 | |
2.1.1 | 428 | 2/14/2021 | |
2.1.0 | 457 | 2/10/2021 | |
2.0.9 | 487 | 2/4/2021 | |
2.0.8 | 533 | 2/3/2021 | |
2.0.7 | 629 | 1/24/2021 | |
2.0.6 | 462 | 1/13/2021 | |
2.0.5 | 510 | 1/10/2021 | |
2.0.4 | 669 | 1/5/2021 | |
2.0.3 | 463 | 1/2/2021 | |
2.0.1 | 620 | 12/19/2020 | |
2.0.0 | 654 | 12/6/2020 | |
1.9.9 | 733 | 12/1/2020 | |
1.9.8 | 462 | 12/1/2020 | |
1.9.7 | 561 | 11/12/2020 | |
1.9.6 | 503 | 11/11/2020 | |
1.9.5 | 588 | 11/11/2020 | |
1.9.4 | 582 | 10/24/2020 | |
1.9.3 | 504 | 10/19/2020 | |
1.9.2 | 486 | 10/12/2020 | |
1.9.1 | 540 | 9/28/2020 | |
1.9.0 | 573 | 9/27/2020 | |
1.8.0 | 873 | 7/31/2020 | |
1.7.0 | 786 | 7/17/2020 | |
1.6.0 | 555 | 7/14/2020 | |
1.5.0 | 548 | 7/6/2020 | |
1.4.0 | 629 | 7/4/2020 | |
1.3.0 | 979 | 6/21/2020 | |
1.2.1 | 623 | 6/21/2020 | |
1.2.0 | 598 | 6/16/2020 | |
1.1.0 | 584 | 5/29/2020 | |
1.0.9 | 607 | 5/16/2020 | |
1.0.8 | 553 | 5/11/2020 | |
1.0.7 | 594 | 5/3/2020 | |
1.0.6 | 550 | 4/22/2020 | |
1.0.5 | 544 | 4/21/2020 | |
1.0.4 | 576 | 4/16/2020 | |
1.0.3 | 680 | 3/28/2020 | |
1.0.2 | 572 | 3/28/2020 | |
1.0.1 | 1,178 | 3/28/2020 |
Fixed TaskCanceledException handler when user cancel the downloader