SmartPipe.Extensions.Json 2.1.2

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

SmartPipe.Extensions.Json

System.Text.Json-based sources, sinks, transforms, and dead-letter persistence for SmartPipe.Core.

Installation

dotnet add package SmartPipe.Extensions.Json --version 2.1.2

Package graph

SmartPipe.Extensions.Json depends on SmartPipe.Core and Microsoft.Extensions.Logging.Abstractions. It does not bring in Dapper, Entity Framework Core, Mapster, CsvHelper, HTTP resilience, hosting, health-check, or Newtonsoft.Json dependencies.

Components

  • JsonFileSource<T>
  • JsonFileSink<T>
  • JsonTransform<TInput,TOutput>
  • DeadLetterSource<T>
  • DeadLetterSink<T>

The related JsonLinesDeadLetterSerializer<T> remains part of SmartPipe.Core.

JSON backend

The package uses System.Text.Json from the .NET 10 shared framework, so an additional System.Text.Json NuGet dependency is neither required nor pinned. Newtonsoft.Json is not a dependency and is not selected at runtime.

Trimming and NativeAOT

Reflection-based constructors are annotated for trimming and NativeAOT risk. For trimmed or NativeAOT applications, use the overloads that accept source-generated JsonTypeInfo<T> metadata.

File formats

Options-based sources and sinks select Array, Ndjson, or BatchJsonLines. Sources can also use Auto; collection-valued payloads must choose an explicit format because a leading array is ambiguous. Existing sink constructors preserve the SmartPipe 2.1.1 default: append one array per flushed line.

Reads are strict by default. MaxDepth defaults to 64 for reflection and source-generated paths. Explicitly line-framed records (Ndjson, BatchJsonLines) have a separate 16 MiB per-record limit (MaxRecordSizeBytes); root arrays and auto-detected legacy top-level value sequences use a 256 MiB unframed input limit (MaxUnframedInputSizeBytes). SkipAndLog requires a logger and is supported only when the source is reading independently line-framed records. JsonFileSource<T> requires explicit Ndjson or BatchJsonLines; dead-letter Auto recovery depends on whether it detects a framed stream rather than a root array.

Append mode preserves existing bytes. If a non-empty destination has no final LF, the sink inserts one before the next record; an existing partial row is not rewritten, and its later replay behavior is determined by the source format and invalid-record policy.

Injected append streams must be readable, seekable, and writable and are validated during initialization before any record is written. Boundary checks restore the incoming position, then writes append at the stream end. Success leaves the position at the new end; successful rollback restores the old end. Injected streams remain open on sink disposal, while path-owned streams are disposed.

DeadLetterSink<T> serializes through Core's IDeadLetterSerializer<T>. Append destinations must also be writable. Failed writes roll back to the pre-record checkpoint; if rollback itself fails, the error reports that the destination may contain a partial record.

Concurrent or reentrant disposal calls share the same asynchronous completion, so the underlying stream is finalized once and every caller observes the same result.

Migration from SmartPipe.Extensions

The public namespaces remain unchanged. SmartPipe.Extensions 2.1.2 retains type forwarders and a transitive dependency on this package so existing 2.x source and binary consumers continue to resolve the moved types. New applications should reference SmartPipe.Extensions.Json directly.

The forwarding dependency is the supported compatibility contract for the 2.x line; no bridge-removal release is promised.

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 (1)

Showing the top 1 NuGet packages that depend on SmartPipe.Extensions.Json:

Package Downloads
SmartPipe.Extensions

Integrations for SmartPipe.Core including HTTP, EF Core, Dapper, CSV, Mapster, resilience, hosting, and health checks. Version 2.1.2 retains compatibility forwarding for JSON integrations moved to SmartPipe.Extensions.Json.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.2 81 7/14/2026