Releases: CodeShayk/TurboMapper
Releases · CodeShayk/TurboMapper
v1.2.0
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 RegisterConvertermethod 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
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)