SmartPipe.Extensions 2.0.0

dotnet add package SmartPipe.Extensions --version 2.0.0
                    
NuGet\Install-Package SmartPipe.Extensions -Version 2.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="SmartPipe.Extensions" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SmartPipe.Extensions" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="SmartPipe.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 SmartPipe.Extensions --version 2.0.0
                    
#r "nuget: SmartPipe.Extensions, 2.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 SmartPipe.Extensions@2.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=SmartPipe.Extensions&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=SmartPipe.Extensions&version=2.0.0
                    
Install as a Cake Tool

SmartPipe.Extensions

Ready-to-use integrations for SmartPipe.Core: file, HTTP, database, mapping, validation, resilience, hosting, and health check components.

Selectors (Data Sources)

Selector Library Description
HttpSelector<T> HttpClient + Polly Fetch data from REST APIs
EfCoreSelector<T> Entity Framework Core Stream entities from database
DapperSelector<T> Dapper High-performance SQL queries
CsvFileSource<T> CsvHelper Read CSV files
JsonFileSource<T> System.Text.Json Read JSON arrays and NDJSON
DeadLetterSource<T> System.Text.Json Read persisted failed-item records

Transforms

Transform Library Description
JsonTransform<TIn,TOut> System.Text.Json JSON serialization
CsvTransform<TIn,TOut> CsvHelper CSV parsing
MapsterTransform<TIn,TOut> Mapster Object mapping
CompressionTransform System.IO.Compression Brotli/GZip compression
PollyResilienceTransform<T> Polly v8 Retry/CircuitBreaker/Hedging
FilterTransform<T> Predicate-based filtering with And/Or/Not
ValidationTransform<T> DataAnnotations Data validation with custom rules
ConditionalTransform<T> Apply transform only when condition met
CompositeTransform<T> Chain multiple transforms into one

Sinks (Data Destinations)

Sink Library Description
LoggerSink<T> ILogger Structured logging
DeadLetterSink<T> System.Text.Json Persist failed items to JSON
HttpSink<T> HttpClient + Polly Send data to REST APIs
DbSink<T> Dapper Insert into any database
CsvFileSink<T> CsvHelper Write CSV files
JsonFileSink<T> System.Text.Json Write JSON files

HTTP Integrations

Use HttpClientFactorySelector<T> and HttpClientFactorySink<T> in DI-based applications so clients come from IHttpClientFactory named or default client configuration. Low-level HttpSelector<T> and HttpSink<T> remain available for callers that already own an HttpClient.

HTTP JSON components accept source-generated JsonTypeInfo<T> / JsonTypeInfo<List<T>> overloads for NativeAOT and trimming-sensitive apps. HttpSelector<T> can read either buffered JSON arrays or streaming responses using HttpSelectorStreamingMode.JsonArray and HttpSelectorStreamingMode.Ndjson; the factory-backed selector exposes the same streaming modes. HttpSink<T> can send the envelope TraceId as an Idempotency-Key header for idempotent endpoints.

Avoid configuring retry in both SmartPipe stage policies and HTTP/Polly client pipelines for the same operation unless that layered retry budget is intentional.

Health Checks

Component Description
SmartPipeLivenessCheck Is pipeline alive? (Kubernetes liveness probe)
SmartPipeReadinessCheck Can pipeline accept data? (Kubernetes readiness probe)

Hosting

Component Description
SmartPipeHostedService ASP.NET Core BackgroundService
AddSmartPipe<TIn,TOut>() Typed definition/factory DI registration
AddSmartPipeHostedService<TIn,TOut>() Typed hosted-service registration

SmartPipeHostedServiceOptions controls hosted fault behavior and drain timeout. The default fault behavior is StopApplication; use Rethrow, MarkUnhealthyAndKeepHostAlive, or Ignore only when that lifecycle policy is intentional for the host.

Streaming

Component Description
ChannelMerge Merge two ChannelReader streams

Installation

dotnet add package SmartPipe.Extensions

Requirements

  • .NET 10.0+
  • SmartPipe.Core 2.0.0 (included as dependency)
  • This package intentionally includes integration dependencies for the features below.
  • Individual features pull their own dependencies:
    • HttpSelector / HttpSink → Polly (via Microsoft.Extensions.Resilience)
    • EfCoreSelector → Entity Framework Core
    • DapperSelector / DbSink → Dapper
    • MapsterTransform → Mapster
    • CsvFileSource / CsvFileSink / CsvTransform → CsvHelper
    • PollyResilienceTransform → Polly.Core
    • SmartPipeHostedService / SmartPipeHealthCheck → Microsoft.Extensions.Hosting / HealthChecks
    • Other components use platform APIs or dependencies already carried by this package.

License

MIT License — see LICENSE for details.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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.