RtFlow.Pipelines.Extensions 1.0.0

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 RtFlow.Pipelines.Extensions --version 1.0.0
                    
NuGet\Install-Package RtFlow.Pipelines.Extensions -Version 1.0.0
                    
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="RtFlow.Pipelines.Extensions" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RtFlow.Pipelines.Extensions" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="RtFlow.Pipelines.Extensions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RtFlow.Pipelines.Extensions --version 1.0.0
                    
#r "nuget: RtFlow.Pipelines.Extensions, 1.0.0"
                    
#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.
#:package RtFlow.Pipelines.Extensions@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RtFlow.Pipelines.Extensions&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=RtFlow.Pipelines.Extensions&version=1.0.0
                    
Install as a Cake Tool

RtFlow.Pipelines.Extensions

NuGet

RtFlow.Pipelines.Extensions provides advanced extensions and utilities for RtFlow.Pipelines.Core, adding specialized operators and enhanced functionality for complex data processing scenarios.

Installation

# Install core package first
dotnet add package RtFlow.Pipelines.Core

# Then add extensions
dotnet add package RtFlow.Pipelines.Extensions

Key Features

  • 🔄 Advanced Transforms - Specialized transformation operators for complex scenarios
  • 📊 Aggregation Operations - Built-in aggregators and collectors
  • 🔀 Flow Control - Advanced routing, splitting, and merging capabilities
  • ⏱️ Time-based Operations - Windowing, throttling, and time-based batching
  • 🧩 Custom Operators - Extended pipeline operations for specific use cases

Advanced Operators

Windowing Operations

using RtFlow.Pipelines.Extensions;

var pipeline = PipelineBuilder
    .Create<SensorReading>()
    .Window(TimeSpan.FromMinutes(5)) // 5-minute windows
    .Transform(window => CalculateAverage(window))
    .Build();

Throttling

var pipeline = PipelineBuilder
    .Create<ApiRequest>()
    .Throttle(maxPerSecond: 100) // Rate limiting
    .Transform(async req => await ProcessApiRequest(req))
    .Build();

Advanced Batching

var pipeline = PipelineBuilder
    .Create<LogEntry>()
    .BatchBy(entry => entry.Level) // Group by log level
    .Transform(batch => ProcessLogBatch(batch))
    .Build();

Conditional Routing

var pipeline = PipelineBuilder
    .Create<Order>()
    .Route(
        when: order => order.Priority == Priority.High,
        then: order => ProcessHighPriority(order),
        otherwise: order => ProcessNormalPriority(order)
    )
    .Build();

Aggregation and Collection

Built-in Aggregators

var pipeline = PipelineBuilder
    .Create<int>()
    .Aggregate(
        seed: 0,
        accumulator: (sum, value) => sum + value,
        windowSize: 100
    )
    .ForEach(sum => Console.WriteLine($"Running sum: {sum}"));

Collection Operations

var pipeline = PipelineBuilder
    .Create<DataPoint>()
    .Collect(capacity: 1000) // Collect up to 1000 items
    .Transform(collection => AnalyzeCollection(collection))
    .Build();

Time-based Processing

Sliding Windows

var pipeline = PipelineBuilder
    .Create<MetricValue>()
    .SlidingWindow(
        windowSize: TimeSpan.FromMinutes(10),
        slideInterval: TimeSpan.FromMinutes(1)
    )
    .Transform(window => CalculateMetrics(window))
    .Build();

Delayed Processing

var pipeline = PipelineBuilder
    .Create<Task>()
    .Delay(TimeSpan.FromSeconds(30)) // Process after 30 seconds
    .Transform(task => ExecuteTask(task))
    .Build();

Custom Extensions

You can create your own pipeline extensions:

public static class MyPipelineExtensions
{
    public static IPipelineBuilder<TOut> MyCustomTransform<TIn, TOut>(
        this IPipelineBuilder<TIn> builder,
        Func<TIn, TOut> transform)
    {
        return builder.Transform(transform);
    }
}

Requirements

  • .NET 8.0 or later
  • RtFlow.Pipelines.Core package

Documentation

For complete documentation and examples, visit the main project repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Product Compatible and additional computed target framework versions.
.NET 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.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated

Extensions package providing Polly integration for resilience patterns and retry policies.