Skip to content

Mapsicle

Object-to-object mapping for .NET with a zero-config core. No profiles, no DI setup, no licence fee.

dotnet add package Mapsiclecopy

The problem

In July 2025 AutoMapper went commercial. A library that half the .NET world had quietly depended on for a decade suddenly had a price attached, and a lot of teams found themselves needing a mapper on short notice.

The obvious alternative, Mapperly, is fast because it generates code at compile time. That is a real advantage, but it means partial classes, source generators, and a different mental model. It is not a drop-in.

Mapsicle is the runtime mapper that stayed free.

What it does

Start with nothing. There is no profile to write and no container to configure:

csharp
using Mapsicle;

var user = new User { Id = 1, FirstName = "John", LastName = "Doe" };

// No configuration. It just maps.
var dto = user.MapTo<UserDto>();

// Collections work the same way.
List<UserDto> dtos = GetUsers().MapTo<UserDto>();

Then add only what you need. Fluent configuration and profiles, EF Core ProjectTo<T>(), FluentValidation, DataAnnotations, caching, audit and change tracking, naming conventions, and ASP.NET Core helpers all ship as separate packages.

It also survives circular references, which is the case that makes AutoMapper throw and Mapperly refuse to compile.

About the numbers

The repo's benchmarks show a single object mapping in about 26ns against AutoMapper's 54ns. Mapperly is faster still, at about 13ns, because it does the work at compile time. If raw speed is the only axis you care about and you can live with source generators, use Mapperly. Mapsicle is for when you want runtime flexibility and no licence.

The full package matrix and configuration guide on GitHub →

Brewed in the baryo ☕ · Released under the MIT License.