Free & MIT Licensed

The fastest .NET object mapper

Drop-in AutoMapper replacement. Same API. 2–5× faster. Zero extra allocations. AutoMapper went commercial — swap the NuGet package, change one using, done.

2–5×
Faster than AutoMapper
0
Extra allocations
MIT
Free forever
.NET 8–10
Supported targets

Install

dotnet add package EggMapper

Supports netstandard2.0, net462, net8.0, net9.0, net10.0.

Why EggMapper?

AutoMapperEggMapper
LicenseCommercial RPL (v13+)MIT — free forever
PerformanceBaseline2–5× faster
AllocationsExtra per-mapZero extra
Runtime reflectionYesNo — compiled expressions
APIOriginalSame API, drop-in swap

30-Second Quick Start

using EggMapper;

var config = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<Customer, CustomerDto>()
       .ForMember(d => d.FullName, o => o.MapFrom(s => $"{s.First} {s.Last}"));
});

var mapper = config.CreateMapper();
var dto = mapper.Map<CustomerDto>(customer);

Full Quick Start guide →

Performance

EggMapper matches hand-written code. The only allocation is the destination object itself:

ScenarioManualEggMapperAutoMapperMapster
Flat (10 props)104 B104 B232 B104 B
Nested (2 objects)248 B248 B504 B248 B
Collection (100 items)10,824 B10,824 B14,424 B10,824 B
Deep collection (100 items, nested)34,424 B34,424 B52,824 B34,424 B

Full benchmarks and methodology →

Key Features

🆕
Drop-in AutoMapper API

CreateMap, ForMember, Profile, IMapper — same signatures, no code changes.

Zero Extra Allocations

Compiled expression trees. No ResolutionContext, no boxing, no per-property delegates.

📊
EF Core ProjectTo

ProjectTo<S,D>(config) translates mapping to SQL via LINQ — no entity materialization.

📚
Inlined Collection Loops

MapList<S,D>() compiles the entire loop as one expression tree. Near-manual speed.

🔄
Deep Clone

Map<T,T>(obj) creates a deep copy with no configuration needed.

Patch Mapping

Patch<S,D>(src, dest) only overwrites non-null properties — ideal for PATCH endpoints.

🔌
One-Line DI

services.AddEggMapper(assembly) registers MapperConfiguration + IMapper as singletons.

🛠
Code Generation

Optional [MapTo] and [EggMapper] source generators for compile-time zero-overhead mapping.

Links