Downloader 1.0.8
See the version list below for details.
dotnet add package Downloader --version 1.0.8
NuGet\Install-Package Downloader -Version 1.0.8
<PackageReference Include="Downloader" Version="1.0.8" />
paket add Downloader --version 1.0.8
#r "nuget: Downloader, 1.0.8"
// Install Downloader as a Cake Addin #addin nuget:?package=Downloader&version=1.0.8 // Install Downloader as a Cake Tool #tool nuget:?package=Downloader&version=1.0.8
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.ChunkDownloadProgressChanged += OnChunkDownloadProgressChanged;
downloader.DownloadFileCompleted += OnDownloadFileCompleted;
Finally, start the download asynchronously. For example, download a .zip file:
var file = @"Your_Path\fileName.zip";
var url = @"https://file-examples.com/fileName.zip";
await downloader.DownloadFileAsync(url, file);
For resume from last download, store downloader.Package
object and execute like this:
await downloader.DownloadFileAsync(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.
- Get download progress events per chunk downloads
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. |
.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 (10)
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 (19)
Showing the top 5 popular GitHub repositories that depend on Downloader:
Repository | Stars |
---|---|
2dust/v2rayN
A GUI client for Windows and Linux, support Xray core and v2fly core and others
|
|
rocksdanister/lively
Free and open-source software that allows users to set animated desktop wallpapers and screensavers powered by WinUI 3.
|
|
goatcorp/FFXIVQuickLauncher
Custom launcher for FFXIV
|
|
yaobiao131/downkyicore
哔哩下载姬(跨平台版)downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)。
|
|
Paving-Base/APK-Installer
An Android Application Installer for Windows
|
Version | Downloads | Last updated | |
---|---|---|---|
3.2.1 | 3,596 | 10/4/2024 | |
3.2.0 | 1,354 | 9/22/2024 | |
3.1.2 | 18,320 | 6/30/2024 | |
3.1.0-beta | 732 | 1/2/2024 | |
3.0.6 | 79,409 | 6/6/2023 | |
3.0.5 | 387 | 6/3/2023 | |
3.0.4 | 43,195 | 3/11/2023 | |
3.0.3 | 4,441 | 1/29/2023 | |
3.0.2 | 1,113 | 1/7/2023 | |
3.0.1 | 5,264 | 11/2/2022 | |
3.0.0-beta | 188 | 10/12/2022 | |
2.4.1 | 12,116 | 9/21/2022 | |
2.4.0 | 1,042 | 9/16/2022 | |
2.3.9 | 513 | 9/14/2022 | |
2.3.8 | 881 | 9/5/2022 | |
2.3.7 | 1,714 | 8/23/2022 | |
2.3.6 | 640 | 8/20/2022 | |
2.3.5 | 79,265 | 5/6/2022 | |
2.3.4 | 1,210 | 5/3/2022 | |
2.3.3 | 5,437 | 2/23/2022 | |
2.3.2 | 1,468 | 1/24/2022 | |
2.3.1 | 636 | 1/2/2022 | |
2.3.0 | 5,095 | 11/15/2021 | |
2.2.9 | 10,341 | 8/12/2021 | |
2.2.8 | 34,990 | 4/1/2021 | |
2.2.7 | 710 | 3/31/2021 | |
2.2.6 | 3,780 | 3/26/2021 | |
2.2.5 | 1,023 | 3/24/2021 | |
2.2.4 | 679 | 3/19/2021 | |
2.2.3 | 2,869 | 3/1/2021 | |
2.2.2 | 797 | 2/24/2021 | |
2.2.1 | 389 | 2/23/2021 | |
2.2.0 | 417 | 2/22/2021 | |
2.1.4 | 405 | 2/21/2021 | |
2.1.3 | 372 | 2/19/2021 | |
2.1.2 | 548 | 2/14/2021 | |
2.1.1 | 407 | 2/14/2021 | |
2.1.0 | 433 | 2/10/2021 | |
2.0.9 | 462 | 2/4/2021 | |
2.0.8 | 511 | 2/3/2021 | |
2.0.7 | 603 | 1/24/2021 | |
2.0.6 | 441 | 1/13/2021 | |
2.0.5 | 488 | 1/10/2021 | |
2.0.4 | 643 | 1/5/2021 | |
2.0.3 | 439 | 1/2/2021 | |
2.0.1 | 597 | 12/19/2020 | |
2.0.0 | 626 | 12/6/2020 | |
1.9.9 | 701 | 12/1/2020 | |
1.9.8 | 441 | 12/1/2020 | |
1.9.7 | 539 | 11/12/2020 | |
1.9.6 | 482 | 11/11/2020 | |
1.9.5 | 556 | 11/11/2020 | |
1.9.4 | 559 | 10/24/2020 | |
1.9.3 | 483 | 10/19/2020 | |
1.9.2 | 461 | 10/12/2020 | |
1.9.1 | 519 | 9/28/2020 | |
1.9.0 | 552 | 9/27/2020 | |
1.8.0 | 850 | 7/31/2020 | |
1.7.0 | 766 | 7/17/2020 | |
1.6.0 | 533 | 7/14/2020 | |
1.5.0 | 527 | 7/6/2020 | |
1.4.0 | 608 | 7/4/2020 | |
1.3.0 | 957 | 6/21/2020 | |
1.2.1 | 600 | 6/21/2020 | |
1.2.0 | 576 | 6/16/2020 | |
1.1.0 | 561 | 5/29/2020 | |
1.0.9 | 583 | 5/16/2020 | |
1.0.8 | 526 | 5/11/2020 | |
1.0.7 | 570 | 5/3/2020 | |
1.0.6 | 526 | 4/22/2020 | |
1.0.5 | 519 | 4/21/2020 | |
1.0.4 | 553 | 4/16/2020 | |
1.0.3 | 655 | 3/28/2020 | |
1.0.2 | 550 | 3/28/2020 | |
1.0.1 | 1,123 | 3/28/2020 |
Fixed cancel method in multi chunk downloads