Shard.Requests 3.0.1

dotnet add package Shard.Requests --version 3.0.1
                    
NuGet\Install-Package Shard.Requests -Version 3.0.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Shard.Requests" Version="3.0.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Shard.Requests" Version="3.0.1" />
                    
Directory.Packages.props
<PackageReference Include="Shard.Requests" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Shard.Requests --version 3.0.1
                    
#r "nuget: Shard.Requests, 3.0.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Shard.Requests@3.0.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Shard.Requests&version=3.0.1
                    
Install as a Cake Addin
#tool nuget:?package=Shard.Requests&version=3.0.1
                    
Install as a Cake Tool

NuGet Downloads License Maintainability

Requests

Performance async task management with priority queues, automatic retries, and pause/resume capabilities for .NET

Why Requests?

Requests transforms chaotic async workflows into manageable, priority-driven operations. Built for developers who need more than basic task scheduling—think game engines, batch processors, API orchestrators, and complex data pipelines.

Key Features

  • Priority Scheduling: High-priority requests jump the queue automatically
  • Smart Retries: Configurable retry logic with exponential backoff
  • Pause & Resume: Stop and restart long-running operations without data loss
  • Progress Tracking: Real-time aggregated progress across multiple operations
  • Dynamic Parallelism: Auto-adjusts concurrency based on system load
  • Zero Lock-in: Simple wrapper pattern around your existing async code

Quick Start

dotnet add package Shard.Requests
using Shard.Requests;

// Wrap any async operation
var request = new OwnRequest(async token =>
{
    var response = await httpClient.GetAsync(url, token);
    return response.IsSuccessStatusCode;
}, new() {
    Priority = RequestPriority.High,
    NumberOfAttempts = 3,
    DelayBetweenAttempts = TimeSpan.FromSeconds(2)
});

// Request auto-starts with built-in retry and priority handling
await request.Task;

Architecture at a Glance

  • Request: Base class for all operations with state machine and lifecycle hooks
  • RequestHandler: Parallel or sequential execution engines with priority channels
  • RequestContainer: Group multiple requests with unified control
  • ProgressableContainer: Track aggregated progress across request batches
  • OwnRequest: Zero-boilerplate wrapper for ad-hoc async operations

Advanced Capabilities

  • Cooperative Cancellation:await Request.Yield() for graceful interruption
  • Subsequent Requests: Chain operations without re-queuing
  • Quaternary Heap: O(log n) priority queue with FIFO ordering within priority levels

Real-World Use Cases

  • Batch Processing: Download 1000 files with 10 parallel workers and retry failed transfers
  • Game Development: Priority-ordered asset loading with pause when backgrounded
  • API Rate Limiting: Throttle concurrent requests with dynamic parallelism control
  • Long Operations: Multi-hour processes with save/resume support

Documentation

Wiki Architecture deep-dives, examples, and API reference

Free Code and Free to Use

Have fun!

Built for developers who need industrial-strength async control without the complexity

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Shard.Requests:

Package Downloads
Shard.DownloadAssistant

A free to use library as a download manager. Includes retry, priority, cancel, etc.. function. Features: • StatusRequest: Calls a Head request and returns a response message with the headers. • SiteRequest: Scans a website for all references. • GetRequest: To download the response into a file. • LoadRequest: Extends GetRequest with chunked download.

Shard.WebsiteScraper

WebsiteScraper is a powerful tool that allows you to effortlessly download your favorite comics and manga from various websites. You can easily provide a JSON file containing the website links, and the scraper will do the rest. Using the advanced parsing capabilities of Angelsharp and Regex, the tool efficiently extracts the desired content from the website and saves it onto your device for offline reading. With WebsiteScraper, you can enjoy your favorite comics and manga anytime, anywhere, without any hassle.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.1 205 12/19/2025
3.0.0 262 12/15/2025
2.2.1 1,063 12/30/2024
2.2.0 235 12/29/2024
2.1.6 405 11/5/2024
2.1.5 286 10/30/2024
2.1.4 403 5/5/2024
2.1.3 217 5/5/2024
2.1.2 233 5/5/2024
2.1.1 214 5/4/2024
2.1.0 218 4/26/2024
2.0.3 430 12/14/2023
2.0.1 256 11/20/2023
2.0.0 303 10/21/2023
1.0.1 255 9/9/2023
1.0.0 214 9/8/2023
0.1.1 315 7/10/2023
0.1.0 244 6/22/2023

Version history on GitHub