PackSite.Library.Pipelining
1.0.0-rc5
This is a prerelease version of PackSite.Library.Pipelining.
There is a newer prerelease version of this package available.
See the version list below for details.
See the version list below for details.
The owner has unlisted this package.
This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package PackSite.Library.Pipelining --version 1.0.0-rc5
NuGet\Install-Package PackSite.Library.Pipelining -Version 1.0.0-rc5
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" Version="1.0.0-rc5" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add PackSite.Library.Pipelining --version 1.0.0-rc5
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: PackSite.Library.Pipelining, 1.0.0-rc5"
#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 as a Cake Addin
#addin nuget:?package=PackSite.Library.Pipelining&version=1.0.0-rc5&prerelease
// Install PackSite.Library.Pipelining as a Cake Tool
#tool nuget:?package=PackSite.Library.Pipelining&version=1.0.0-rc5&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).
- 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 (resolution in microseconds).
- 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
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 3.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 3.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 3.0.0)
- PackSite.Library.Pipelining.Abstractions (>= 1.0.0-rc5)
-
net5.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 5.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 5.0.0)
- PackSite.Library.Pipelining.Abstractions (>= 1.0.0-rc5)
-
net6.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 6.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.0)
- PackSite.Library.Pipelining.Abstractions (>= 1.0.0-rc5)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on PackSite.Library.Pipelining:
Package | Downloads |
---|---|
PackSite.Library.Pipelining.Configuration
Microsoft.Extensions.Options based pipelines configuration for PackSite.Library.Pipelining |
GitHub repositories
This package is not used by any popular GitHub repositories.