PackSite.Library.Pipelining.Abstractions
1.0.0-rc6
This is a prerelease version of PackSite.Library.Pipelining.Abstractions.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package PackSite.Library.Pipelining.Abstractions --version 1.0.0-rc6
NuGet\Install-Package PackSite.Library.Pipelining.Abstractions -Version 1.0.0-rc6
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="PackSite.Library.Pipelining.Abstractions" Version="1.0.0-rc6" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PackSite.Library.Pipelining.Abstractions --version 1.0.0-rc6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PackSite.Library.Pipelining.Abstractions, 1.0.0-rc6"
#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.
// Install PackSite.Library.Pipelining.Abstractions as a Cake Addin
#addin nuget:?package=PackSite.Library.Pipelining.Abstractions&version=1.0.0-rc6&prerelease
// Install PackSite.Library.Pipelining.Abstractions as a Cake Tool
#tool nuget:?package=PackSite.Library.Pipelining.Abstractions&version=1.0.0-rc6&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Library.Pipelining
PackSite.Library.Pipelining is a set of .NET Standard 2.1, .NET 5, and .NET 6 compatible libraries for building modern ASP.NET Core middleware-like data pipelines.
Features
- Uses
Microsoft.Extensions.*
to suppoort a modular library design (can also be used without Generic Host but with limited features). - Support for asynchronous processing model.
- Transient, Scoped, and Singleton pipeline lifetime.
- Pipelines distinguised by custom names or pipeline argument data type.
- Fluent pipeline builder (for defining pipeline name, description, and steps).
- Highly configurable steps order using
Add
,Insert
,InsertBefore
,InsertAfter
methods. - Dynamic subpipelines.
- Generic and object-based steps.
- Code-first pipeline definitions during Generic Host start and at runtime through
IPipelineCollection
. - Optional configuration-based pipelines definitions using
IOptions
with reloading. - Pipeline counters: executions count (successful and failure) and speed (microsecond resolution).
- Very fast step execution (see Benchmarks section).
Examples
See Examples folder for all library usage examples.
Benchmarks
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1415 (21H2)
Intel Core i7-4790 CPU 3.60GHz (Haswell), 1 CPU, 8 logical and 4 physical cores
.NET SDK=6.0.101
[Host] : .NET 6.0.1 (6.0.121.56705), X64 RyuJIT
DefaultJob : .NET 6.0.1 (6.0.121.56705), X64 RyuJIT
Method | Mean | Error | StdDev | Ratio | Rank |
---|---|---|---|---|---|
'Steps.Count == 1' | 22.80 us | 0.345 us | 0.323 us | 0.34 | 1 |
'Steps.Count == 2' | 31.12 us | 0.169 us | 0.158 us | 0.47 | 2 |
'Steps.Count == 5' | 64.17 us | 0.349 us | 0.291 us | 0.97 | 3 |
'Loop simulation (i == 100)' | 66.33 us | 0.108 us | 0.084 us | 1.00 | 4 |
'Steps.Count == 10' | 119.05 us | 0.481 us | 0.402 us | 1.80 | 5 |
'Steps.Count == 50' | 605.81 us | 1.675 us | 1.485 us | 9.13 | 6 |
'Steps.Count == 100' | 1,280.27 us | 6.409 us | 5.352 us | 19.30 | 7 |
Every pipeline was invoked 100 times - so for pipeline with 5 steps, a 500 steps were executed.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. 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 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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on PackSite.Library.Pipelining.Abstractions:
Package | Downloads |
---|---|
PackSite.Library.Pipelining
PackSite pipelining library |
GitHub repositories
This package is not used by any popular GitHub repositories.