Skip to content

Releases: CodeShayk/TurboMapper

v1.2.0

11 Oct 23:24
d6f03fc

Choose a tag to compare

Release 1.2.0 - Enhanced Core & Mapping Features

Version: 1.2.0 (Minor Release)

Release Date: October 2025
Type: Minor Release (backward compatible new features and improvements)

Enhanced Custom Conversion Feature in Mapping Module:

  • New Functionality: Support for custom type converter registration system directly in MappingModule configuration
  • API Enhancement: Added RegisterConverter method to MappingModule allowing registration of type conversion functions
  • Module Integration: MappingModule now supports converter function registration for type mappings
  • Usage Example: RegisterConverter<string, Guid>(str => Guid.Parse(str)) within module constructor

Release Notes:

  • Performance Improvements: Significant performance enhancements through compiled expression trees and metadata caching, with expected 2x+ improvement in mapping speed
  • Code Quality: Consolidated duplicate code in GetMemberPath methods and simplified complex mapping methods
  • Internal Optimizations: Replaced Activator.CreateInstance with optimized factory delegates and added configuration caching for faster lookup
  • New Feature: Collection mapping support for IEnumerable, IList, and arrays - the Map method now returns IEnumerable when mapping collections, replacing the separate MapList method
  • New Feature: Ability to ignore properties during mapping using the Ignore() method
  • New Feature: Custom type converter registration system for handling complex type conversions through MappingModule
  • Enhancement: Enhanced nullable type handling with improved conversion logic
  • Improvement: Much more descriptive error messages for debugging mapping issues
  • New Feature: Conditional mapping allowing properties to be mapped based on conditions using When() method
  • Enhanced Feature: Transformation functions during mapping using MapWith() method with integrated custom conversion support in MappingModule
  • Improvement: More comprehensive built-in type conversions including DateTime, TimeSpan, and decimal/float conversions
  • Improvement: Configuration validation returns ValidationResult object with IsValid flag and Errors collection for better error reporting

Backward Compatibility:

  • ✅ Fully backward compatible
  • No breaking changes to public APIs
  • All existing mapping configurations will continue to work
  • Performance improvements are transparent to users
  • New features are opt-in

Impact:

  • Performance: Significant improvement in mapping speed
  • Memory: More efficient memory usage through caching
  • Functionality: Added support for mapping collections and complex type conversions
  • Debuggability: Much better error messages help identify mapping issues quickly
  • Flexibility: More control over mapping process with ignore, custom converters, conditions and transformations
  • Reliability: Early detection of configuration issues
  • Coverage: Better handling of various data types

v1.0.0

09 Oct 21:51
4b84231

Choose a tag to compare

TurboMapper v1.0.0 - Release Notes

Overview

TurboMapper is a lightweight, high-performance object mapping library for .NET that provides an intuitive alternative to AutoMapper with support for both shallow and deep object mapping.

Key Features

Core Mapping Capabilities

  • Automatic Name-Based Mapping: Maps properties with matching names automatically between source and target objects
  • Deep/Nested Object Mapping: Recursively maps nested objects and complex hierarchies
  • Custom Property Mapping: Explicit configuration for mapping properties with different names or structures
  • Type Conversion: Automatic conversion between compatible types (int to string, string to enum, etc.)

Configuration Options

  • Fluent API: Configure mappings using an intuitive fluent interface with ForMember() expressions
  • Mapping Modules: Organize mapping configurations in reusable MappingModule<TSource, TTarget> classes
  • Default Mapping Control: Option to enable/disable automatic name-based mapping alongside custom configurations
  • Property Flattening: Map nested properties to flat structures (e.g., Address.City → City)
  • Property Nesting: Map flat properties into nested object structures

Dependency Injection Support

  • Built-in DI Registration: Simple registration with services.AddTurboMapper()
  • Singleton Lifecycle: Mapper registered as singleton for optimal performance
  • Auto-Discovery: Automatically discovers and registers mapping modules from loaded assemblies

Platform Support

  • .NET 9.0
  • .NET Standard 2.0 & 2.1
  • .NET Framework 4.6.2

Quality & Performance

  • Thread-Safe: Safe for concurrent mapping operations
  • High Performance: Optimized for production workloads
  • Comprehensive Testing: Extensive unit and integration test coverage
  • CI/CD Pipeline: Automated builds, testing, linting, and CodeQL security analysis

Technical Implementation

  • Reflection-based property mapping with caching
  • Support for null value handling at all levels
  • Graceful handling of missing or incompatible properties
  • Read-only property detection and skipping

Package Information

  • License: MIT
  • NuGet Package: TurboMapper
  • Repository: GitHub (CodeShayk/TurboMapper)