Shard.Requests
3.0.1
dotnet add package Shard.Requests --version 3.0.1
NuGet\Install-Package Shard.Requests -Version 3.0.1
<PackageReference Include="Shard.Requests" Version="3.0.1" />
<PackageVersion Include="Shard.Requests" Version="3.0.1" />
<PackageReference Include="Shard.Requests" />
paket add Shard.Requests --version 3.0.1
#r "nuget: Shard.Requests, 3.0.1"
#:package Shard.Requests@3.0.1
#addin nuget:?package=Shard.Requests&version=3.0.1
#tool nuget:?package=Shard.Requests&version=3.0.1
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 | Versions 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. |
-
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