A high-performance, multi-threaded C# library for piecewise file downloads with pause/resume, retry, and proxy support.
OctaneDownloader is a high-performance, multi-threaded C# library for downloading files in segments asynchronously. It solves the problem of slow or unreliable file transfers by splitting downloads into concurrent parts, offering features like pause/resume, retry mechanisms, and speed throttling to improve efficiency and robustness.
C# developers building applications that require efficient and reliable file downloading, such as desktop tools, backend services, or any software handling large file transfers over HTTP/HTTPS.
Developers choose OctaneDownloader for its superior performance over standard .NET download methods, its rich feature set including pause/resume and proxy support, and its seamless integration with modern .NET patterns like dependency injection and configuration systems.
A high performance, multi-threaded C# file download library.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses multipart downloading to split files into concurrent segments, significantly speeding up large file transfers as benchmarks show it outperforming HttpClient for files over 250MB.
Includes pause/resume support, automatic retries with configurable limits, and speed throttling via BytesPerSecond setting for precise bandwidth control.
Supports dependency injection via the IEngine interface and configuration through JSON files with Microsoft.Extensions.Configuration, fitting seamlessly into ASP.NET Core or console apps.
Provides detailed logging capabilities, including progress reporting and methods like GetCurrentNetworkLatency and GetCurrentNetworkSpeed for performance tracking.
Requires explicit configuration for parameters like parts, buffer size, and retry limits, which is more involved than using a simple HttpClient for basic downloads.
Focuses solely on HTTP/HTTPS downloads, lacking built-in support for other protocols like FTP or SCP, necessitating additional libraries for broader use cases.
The segmented approach and feature-rich design may introduce overhead for downloading small files where performance gains are minimal, making it less efficient than lightweight alternatives.