Kampute.Resilience 1.1.0

dotnet add package Kampute.Resilience --version 1.1.0
                    
NuGet\Install-Package Kampute.Resilience -Version 1.1.0
                    
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="Kampute.Resilience" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Kampute.Resilience" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Kampute.Resilience" />
                    
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 Kampute.Resilience --version 1.1.0
                    
#r "nuget: Kampute.Resilience, 1.1.0"
                    
#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 Kampute.Resilience@1.1.0
                    
#: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=Kampute.Resilience&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Kampute.Resilience&version=1.1.0
                    
Install as a Cake Tool

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.
  • Execute and ExecuteAsync methods 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .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.

Version Downloads Last Updated
1.1.0 364 10/5/2026
1.0.0 238 10/4/2026

For detailed release notes, please visit https://github.com/kampute/resilience/releases