ProtoPromise 3.2.0
Requires NuGet 2.5 or higher.
dotnet add package ProtoPromise --version 3.2.0
NuGet\Install-Package ProtoPromise -Version 3.2.0
<PackageReference Include="ProtoPromise" Version="3.2.0" />
paket add ProtoPromise --version 3.2.0
#r "nuget: ProtoPromise, 3.2.0"
// Install ProtoPromise as a Cake Addin #addin nuget:?package=ProtoPromise&version=3.2.0 // Install ProtoPromise as a Cake Tool #tool nuget:?package=ProtoPromise&version=3.2.0
Robust and efficient library for management of asynchronous operations.
- Allocation-free async operations
- Cancelable operations with custom allocation-free CancelationToken/Source
- Allocation-free async iterators with async Linq
- Progress with enforced normalization
- Structured concurrency
- async/await support and .Then API
- Thread safe
- Easily switch to foreground or background context
- Circular await detection
- Full causality traces
- Interoperable with Tasks
- CLS compliant
This library was built to work in all C#/.Net ecosystems, including Unity, Mono, .Net Framework, .Net Core, and AOT compilation. It is CLS compliant, so it works with any .Net language.
ProtoPromise conforms to the Promises/A+ Spec as far as is possible with C#.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. 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 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. |
.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 is compatible. |
.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
- Microsoft.Bcl.AsyncInterfaces (>= 5.0.0)
- ProtoPromise.Analyzer (>= 1.0.0)
- System.Buffers (>= 4.5.1)
- System.Memory (>= 4.5.5)
- System.Threading.Tasks.Extensions (>= 4.5.4)
-
.NETStandard 2.1
- ProtoPromise.Analyzer (>= 1.0.0)
-
net6.0
- ProtoPromise.Analyzer (>= 1.0.0)
-
net8.0
- ProtoPromise.Analyzer (>= 1.0.0)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on ProtoPromise:
Package | Downloads |
---|---|
ProtoPromise.UnityHelpers.2018.3
ProtoPromise helpers for UnityEngine. |
|
ProtoPromise.UnityHelpers.2023.1
ProtoPromise helpers for UnityEngine. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.2.0 | 173 | 11/3/2024 |
3.1.1 | 575 | 8/17/2024 |
3.1.0 | 215 | 6/30/2024 |
3.0.2 | 639 | 4/12/2024 |
3.0.1 | 276 | 4/6/2024 |
3.0.0 | 299 | 3/18/2024 |
2.7.0 | 1,074 | 2/11/2024 |
2.6.1 | 1,094 | 10/22/2023 |
2.6.0 | 381 | 10/2/2023 |
2.5.4 | 613 | 6/17/2023 |
2.5.3 | 608 | 6/9/2023 |
2.5.2 | 570 | 6/5/2023 |
2.5.1 | 550 | 5/27/2023 |
2.5.0 | 584 | 5/15/2023 |
2.4.1 | 783 | 2/6/2023 |
2.4.0 | 841 | 12/23/2022 |
2.3.0 | 982 | 9/25/2022 |
2.2.0 | 756 | 8/6/2022 |
2.1.0 | 737 | 6/20/2022 |
2.0.2 | 769 | 4/25/2022 |
2.0.1 | 788 | 4/7/2022 |
2.0.0 | 785 | 3/7/2022 |
Enhancements:
- Added `Channel<T>` and related types in `Proto.Promises.Channels` namespace.
- Added `Promise(<T>).{ConfigureAwait, ConfigureContinuation}` APIs and accompanying `ContinuationOptions` type.
- Added `SynchronizationOption.CapturedContext` option.
- Added `(Ordered, Configured)AsyncEnumerable.ConfigureAwait(ContinuationOptions)` new overloads.
- Exposed `ConfiguredAsyncEnumerable<T>.{ContinuationOptions, CancelationToken}` and `ConfiguredAsyncEnumerable<T>.Enumerator.ContinuationOptions`.
- Added `ManualSynchronizationContextCore` type.
- Added `PromiseSynchronizationContext.Execute(bool exhaustive)` API.
- Added `Promise(<T>).FromException` API.
- Added option to disable context capture for async synchronization primitives.
Fixes:
- Fixed some bugs surrounding `AsyncEnumerable.Merge` enumerator disposal.
- Fixed a potential race condition with `Promise.New` API.
- Fixed some async Linq implementations that weren't configuring the awaits properly.
Deprecated:
- Deprecated `Promise(<T>).WaitAsync` APIs accepting `SynchronizationContext` and `SynchronizationOption`.
Misc:
- Changed default `Progress` invokeOption to `CapturedContext`.
- Added net8.0 build target.