GenericPipeline 1.0.0
dotnet add package GenericPipeline --version 1.0.0
NuGet\Install-Package GenericPipeline -Version 1.0.0
<PackageReference Include="GenericPipeline" Version="1.0.0" />
paket add GenericPipeline --version 1.0.0
#r "nuget: GenericPipeline, 1.0.0"
// Install GenericPipeline as a Cake Addin #addin nuget:?package=GenericPipeline&version=1.0.0 // Install GenericPipeline as a Cake Tool #tool nuget:?package=GenericPipeline&version=1.0.0
<img align="left" width="100" height="100" src="images/icon.png">
GenericPipeline
A general purpose dependency free pipeline builder. https://en.wikipedia.org/wiki/Pipeline_(software)
๐ Features
- Simplicity: Designed with simplicity in mind, the library offers a straightforward and easy-to-use pipeline implementation.
- High Performance: The library boasts exceptional performance, as demonstrated by its benchmark results.
- No Dispatch-Time Allocations: With the exception of async
Task
, the library makes no dispatch-time allocations, thus providing a highly efficient pipeline implementation. - No Dependencies: The library has zero external dependencies, making it lightweight and easy to integrate with other projects.
๐ฆ๏ธ Get started
Download from nuget.org:
dotnet add package GenericPipeline --prerelease
โ๏ธ Feature parity
GenericPipeline | MediatR | MessagePipe | PipelineNet | Mediator | |
---|---|---|---|---|---|
Usable without dependency injection | โ๏ธ | โ | โ | โ๏ธ | โ |
Usable with dependency injection | โ๏ธ | โ๏ธ | โ๏ธ | โ๏ธยน | โ๏ธ |
.NET framework support | โ๏ธ | โ๏ธ | โ๏ธ | โ๏ธ | โ |
Allocation-free dispatching | โ๏ธ | โ | โ๏ธ | โ | โ๏ธ |
Generic request handling | โ๏ธ | โ๏ธ | โ๏ธ | โ | โ๏ธ |
Async and sync handlers/behaviors | โ๏ธ | โ | โ๏ธ | โ๏ธ | โ |
Change handlers at runtime | โ๏ธ | โ | โ | โ๏ธยฒ | โ |
Behaviors | โ๏ธ | โ๏ธ | โ๏ธ | โ๏ธ | โ๏ธ |
Streams | โ | โ๏ธ | โ | โ | โ๏ธ |
Notifications | โ | โ๏ธ | โ๏ธ | โ | โ๏ธ |
ยน <sup>- Unity container only,</sup> ยฒ <sup>- add only, cannot remove</sup>
โก๏ธ Benchmarks
Overhead per invocation for each library. Scenario contains a call to a behavior and a handler.
Sync: | Method | Mean | Allocated | |---------------------- |-------------:|----------:| | Simple method call | 5.7 ns | - | | GenericPipeline | 31.2 ns | - | | MediatR | 502.8 ns | 600 B | | PipelineNet | 95.4 ns | 152 B |
Awaited async: | Method | Mean | Allocated | |---------------------- |-------------:|----------:| | Simple method call | 4 863 ns | 560 B | | GenericPipeline | 5 906 ns | 864 B | | MediatR | 6 662 ns | 1160 B | | PipelineNet | 7 017 ns | 1184 B |
<sub> <a href="https://www.flaticon.com/free-icons/pipe" title="pipe icons">Pipe icons created by Smashicons - Flaticon</a> </sub>
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. |
.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.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on GenericPipeline:
Package | Downloads |
---|---|
GenericPipeline.Extensions.DependencyInjection
A general purpose, simple and fast pipeline builder. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 1,412 | 3/27/2023 |
0.6.0-preview | 157 | 3/26/2023 |