3rd Party Libraries and Contributions
Note
Fences is a fork of Polly 8.7.0, and this page is inherited with the code. The libraries listed
below are the ones Polly depended on, and the acknowledgements are Polly's contributors — the
people who wrote the code Fences is built from. Version references such as "until Polly v5.0.6"
are Polly's history and are left as they were. See NOTICE.md
for provenance and attribution.
- 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.
Acknowledgements
- 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.