Fdw.Services.EtlMappers.Pooled 1.5.6

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

Fdw.Services.EtlMappers.Pooled

Zero-allocation ETL row mapper using dictionary pooling.

Overview

This package provides a high-performance ETL row mapper implementation that eliminates per-row dictionary allocations by using an object pool. The PooledDictionaryMapper pre-computes field ordinals during initialization and reuses dictionaries via a thread-safe DictionaryPool, achieving zero estimated allocations per row after warmup. This is the default mapper type registered with EtlRowMapperProvider.

Installation

<PackageReference Include="Fdw.Services.EtlMappers.Pooled" Version="x.y.z" />

Key Types

  • PooledDictionaryMapper - IEtlRowMapper implementation with zero allocations per row
  • PooledDictionaryMapperType - TypeOption registered as "Pooled" in EtlRowMapperTypes
  • PooledDictionaryMapperFactory - Factory for creating PooledDictionaryMapper instances
  • PooledDictionaryMapperConfiguration - Configuration with pool size and dictionary size limits
  • DictionaryPool - Thread-safe ConcurrentBag-based dictionary pool
  • RowMappingContext - Pre-computed field ordinals and names cached per read operation

Usage

// Automatic registration via EtlRowMapperTypes (default mapper type)
EtlRowMapperTypes.Configure(services, configuration, loggerFactory);
EtlRowMapperTypes.Register(services, loggerFactory);

// Configuration in appsettings.json
// "EtlMappers:Pooled": { "MaxPoolSize": 1000, "MaxDictionarySize": 100 }
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 Fdw.Services.EtlMappers.Pooled:

Package Downloads
Fdw.Bundle

Release 1.5.6: pins 287 packages to the exact versions this release shipped. Not pinned, because their package type is not an ordinary dependency: Fdw.Conventions.FileSplitter 1.5.6 (DotnetTool), Fdw.DevSession.McpServer 1.5.6 (DotnetTool).

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.5.6 0 11/12/2026
1.5.5 48 11/10/2026
1.5.4 49 11/10/2026
1.5.3 51 11/10/2026
1.5.2 52 11/9/2026
1.5.1 56 11/9/2026
1.5.1-rc.7 48 11/9/2026
1.5.1-rc.6 47 11/9/2026
1.5.1-rc.5 51 11/9/2026
1.5.1-rc.4 43 11/8/2026
1.5.1-rc.3 48 11/7/2026
1.5.1-rc.2 46 11/6/2026
1.5.1-rc.1 53 11/5/2026
1.5.0 80 11/5/2026
1.4.5 95 11/2/2026
1.4.5-rc.1 57 11/1/2026
1.4.4 90 10/30/2026
1.4.4-rc.1 54 10/30/2026
1.4.3 92 10/28/2026
1.4.3-rc.1 62 10/28/2026
Loading failed