Kampute.Resilience
1.1.0
dotnet add package Kampute.Resilience --version 1.1.0
NuGet\Install-Package Kampute.Resilience -Version 1.1.0
<PackageReference Include="Kampute.Resilience" Version="1.1.0" />
<PackageVersion Include="Kampute.Resilience" Version="1.1.0" />
<PackageReference Include="Kampute.Resilience" />
paket add Kampute.Resilience --version 1.1.0
#r "nuget: Kampute.Resilience, 1.1.0"
#:package Kampute.Resilience@1.1.0
#addin nuget:?package=Kampute.Resilience&version=1.1.0
#tool nuget:?package=Kampute.Resilience&version=1.1.0
Kampute.Resilience
A lightweight .NET library for retrying operations that fail transiently. It provides composable retry strategies, fluent retry policies that run synchronous or asynchronous operations with retries, and retry sessions for loops that you write yourself, with no package dependencies.
Documentation · User guide · API reference
Features
- Constant, linear, Fibonacci and exponential backoff strategies.
- Modifiers that limit retries by count or elapsed time, cap delays, and add jitter, combined in any order.
- Fluent, immutable retry policies that select the exceptions and results to retry, and that you build once and share.
- Retry notifications with attempt, outcome, elapsed time, and delay; outcome-based delays and cleanup of discarded results.
ExecuteandExecuteAsyncmethods that preserve exception stack traces and, when run synchronously, add no allocations of their own for each retry.- Retry sessions for operations that run their own retry loop.
Installation
dotnet add package Kampute.Resilience
The package targets netstandard2.0 and net10.0.
Usage
This example runs an asynchronous operation and retries it when it throws TimeoutException. RunOperationAsync stands for your own operation.
using System;
using Kampute.Resilience;
var retry = RetryStrategies
.Exponential(TimeSpan.FromSeconds(1))
.WithMaxDelay(TimeSpan.FromSeconds(30))
.WithJitter(0.2)
.WithMaxRetries(5)
.RetryOn<TimeoutException>();
var result = await retry.ExecuteAsync(ct => RunOperationAsync(ct));
Building
dotnet build -c Release
dotnet test --verbosity minimal
kampose build
On Windows, the tests also run on .NET Framework 4.8. kampose build generates the documentation site in .site from the Release build and the topics in docs.
License
This project is licensed under the MIT License.
| 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. 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. |
| .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.
-
net10.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Kampute.Resilience:
| Package | Downloads |
|---|---|
|
Kampute.HttpClient
Kampute.HttpClient is a versatile and lightweight .NET library that simplifies RESTful API communication. Its core HttpRestClient class provides a streamlined approach to HTTP interactions, offering advanced features such as two-way content formatters with built-in XML support, robust error handling, configurable retry policies, and detailed request-response processing. Striking a balance between simplicity and extensibility, Kampute.HttpClient empowers developers with a powerful yet easy-to-use client for seamless API integration across a wide range of .NET applications. |
GitHub repositories
This package is not used by any popular GitHub repositories.
For detailed release notes, please visit https://github.com/kampute/resilience/releases