Show HN: Go-mapper – AutoMapper-style struct mapping for Go
I’ve worked a lot with C# and .NET, and one tool I really missed when using Go was AutoMapper.
So I built go-mapper, a lightweight Go package that helps map between structs — useful for converting DTOs to domain models, etc.
Uses Go generics (1.18+) Supports shallow copy of fields Custom field transformations with fluent API Optional interface for struct-level control
Example:
type CreateUserDto struct { Name string Password string }
type User struct { Name string PasswordHash string }
mapper.CreateProfile(CreateUserDto{}, User{}, mapper.ForMember(func(u *User) any { return &u.PasswordHash }, mapper.MapFrom(func(dto CreateUserDto) (string, error) { return bcrypt.GenerateFromPassword([]byte(dto.Password), bcrypt.DefaultCost) }), ), )
GitHub: https://github.com/davitostes/go-mapper
I’d love any feedback, suggestions, or contributions. Thanks!