- xUnit.net - Free, open source, community-focused unit testing tool for the .NET Framework | Apache License 2.0 (Apache)
- Ian Griffith's
TimedLock - Steven van Deursen's
ReadOnlyDictionary(until Polly v5.0.6) - Stephen Cleary's
AsyncExlibrary forAsyncSemaphore(supportsBulkheadAsyncpolicy for .NET 4.0 only) (until Polly v5.9.0) | MIT license - @theraot's
ExceptionDispatchInfoimplementation for .NET 4.0 (supports Timeout policy for .NET4.0 only) (until Polly v5.9.0) including also a contribution by @migueldeicaza | Licensed under and distributed under Creative Commons Attribution Share Alike license per StackExchange Terms of Service - Build powered by Cake and MinVer. Developers powered by Resharper, with thanks to JetBrains for OSS licensing.
- lokad-shared-libraries - Helper assemblies originally for .NET 3.5 and Silverlight 2.0 which were developed as part of the Open Source effort by Lokad.com (discontinued) | New BSD License
- @michael-wolfenden - The creator and mastermind of Polly!
- @ghuntley - Portable Class Library implementation.
- @mauricedb - Initial async implementation.
- @robgibbens - Added existing async files to PCL project
- Hacko - Added extra
NotOnCapturedContextcall to prevent potential deadlocks when blocking on asynchronous calls - @ThomasMentzel - Added ability to capture the results of executing a policy via
ExecuteAndCapture - @yevhen - Added full control of whether to continue on captured synchronization context or not
- @reisenberger - Added full async cancellation support
- @reisenberger - Added async support for
ContextualPolicy - @reisenberger - Added
ContextualPolicysupport for circuit-breaker - @reisenberger - Extended circuit-breaker for public monitoring and control
- @reisenberger - Added
ExecuteAndCapturesupport with arbitrary context data - @kristianhald and @reisenberger - Added
AdvancedCircuitBreaker - @reisenberger - Allowed async
onRetrydelegates to async retry policies - @Lumirris - Add new
Polly.Net40Asyncproject/package supporting async for .NET 4.0 via Microsoft.Bcl.Async - @SteveCote - Added overloads to
WaitAndRetry{Async}methods that accept anonRetrydelegate which includes the attempt count. - @reisenberger - Allowed policies to handle returned results; added strongly-typed policies
Policy<TResult>. - @christopherbahr - Added optimisation for circuit-breaker hot path.
- @Finity - Fixed circuit-breaker threshold bug.
- @reisenberger - Add some missing
ExecuteAndCapture{Async}overloads. - @brunolauze - Add CancellationToken support to synchronous executions (to support
TimeoutPolicy). - @reisenberger - Add
PolicyWrap. - @reisenberger - Add Fallback policy.
- @reisenberger - Add
PolicyKeysand context to all policy executions, as bedrock for policy events and metrics tracking executions. - @reisenberger, and contributions from @brunolauze - Add Bulkhead Isolation policy.
- @reisenberger - Add Timeout policy.
- @reisenberger - Fix .NET Standard 1.0 targeting. Remove
PCL259target.PCL259support is provided via .NET Standard 1.0 target, going forward. - @reisenberger - Fix CircuitBreaker
HalfOpenstate and cases when breakDuration is shorter than typical call timeout. Thanks to @vgouw and @kharos for the reports and insightful thinking. - @lakario - Tidy CircuitBreaker
LastExceptionproperty. - @lakario - Add
NoOpPolicy. - @Julien-Mialon - Fixes, support and examples for .NET Standard compatibility with Xamarin PCL projects
- @reisenberger - Add mutable Context and extra overloads taking Context. Allows different parts of a policy execution to exchange data via the mutable Context travelling with each execution.
- @ankitbko - Add
PolicyRegistryfor storing and retrieving policies. - @reisenberger - Add interfaces by policy type and execution type.
- @seanfarrow - Add
IReadOnlyPolicyRegistryinterface. - @kesmy - Migrate solution to msbuild15, banish
project.jsonandpackages.config - @hambudi - Ensure sync
TimeoutPolicywithTimeoutStrategy.Pessimisticrethrows delegate exceptions without additionalAggregateException. - @jiimaho and @Extremo75 - Provide public factory methods for
PolicyResult, to support testing. - @Extremo75 - Allow fallback delegates to take handled fault as input parameter.
- @reisenberger and @seanfarrow - Add
CachePolicy, with interfaces for pluggable cache providers and serializers. - Thanks to the awesome devs at @tretton37 who delivered the following as part of a one-day in-company hackathon led by @reisenberger, sponsored by @tretton37 and convened by @thecodejunkie
- @matst80 - Allow WaitAndRetry to take handled fault as an input to the
sleepDurationProvider, allowing WaitAndRetry to take account of systems which specify a duration to wait as part of a fault response; e.g. Azure CosmosDB may specify this inx-ms-retry-after-msheaders or in a property to an exception thrown by the Azure CosmosDB SDK. - @MartinSStewart - Add
GetPolicies()extension methods toIPolicyWrap. - @jbergens37 - Parallelize test running where possible, to improve overall build speed.
- @matst80 - Allow WaitAndRetry to take handled fault as an input to the
- @reisenberger - Add new
.HandleInner<TException>(...)syntax for handling inner exceptions natively. - @rjongeneelen and @reisenberger - Allow
PolicyWrapconfiguration to configure policies via interfaces. - @reisenberger - Performance improvements.
- @awarrenlove - Add ability to calculate cache TTL based on item to cache.
- @erickhouse - Add a new
onBreakoverload that provides the prior state on a transition to an open state. - @benagain - Bug fix:
RelativeTtlinCachePolicynow always returns a ttl relative to time item is cached. - @urig - Allow
TimeoutPolicyto be configured withTimeout.InfiniteTimeSpan. - @reisenberger - Integration with
IHttpClientFactoryfor ASP.NET Core 2.1. - @freakazoid182 -
WaitAndRetry{Forever}overloads whereonRetrytakes the retry number as a parameter. - @dustyhoppe - Overloads where
onTimeouttakes thrown exception as a parameter. - @flin-zap - Catch missing async continuation control.
- @reisenberger - Clarify separation of sync and async policies.
- @reisenberger - Enable extensibility by custom policies hosted external to Polly.
- @seanfarrow - Enable collection initialization syntax for
PolicyRegistry. - @moerwald - Code clean-ups, usage of more concise C# members.
- @cmeeren - Enable cache policies to cache values of
default(TResult). - @aprooks - Build script tweaks for Mac and Mono.
- @kesmy - Add SourceLink support, clean up cake build.
- @simluk - Fix
continueOnCaptureContextnot being honored in async retry implementation (bug in v7.1.0 only). - @jnyrup - Upgrade tests to Fluent Assertions v5.9.0
- @SimonCropp - Add
netcoreapp3.0target; code clean-ups. - @aerotog and @reisenberger -
IConcurrentPolicyRegistrymethods onPolicyRegistry - @reisenberger and @martincostello - Add RateLimit policy.