MapStruct logo


A Java code generator for creating fast and type-safe bean mappings at compile time
+ 1

What is MapStruct?

It is a code generator that greatly simplifies the implementation of mappings between Java bean types based on a convention over configuration approach. The generated mapping code uses plain method invocations and thus is fast, type-safe and easy to understand.
MapStruct is a tool in the Java Tools category of a tech stack.
MapStruct is an open source tool with 2.6K GitHub stars and 405 GitHub forks. Here’s a link to MapStruct's open source repository on GitHub

Who uses MapStruct?


16 developers on StackShare have stated that they use MapStruct.

Why developers like MapStruct?

Here’s a list of reasons why companies and developers use MapStruct
Top Reasons
Be the first to leave a pro

MapStruct's Features

  • Mapping (immutable) objects using builders
  • Enhanced and more flexible update method (@MappingTarget) handling
  • Constructor injection for Annotation Based component models
  • Source policy for unmapped source properties (unmappedSourcePolicy)
  • Support for defaultExpression
  • Limit mapping only to explicitly defined mappings
  • Performance improvement of constant / defaultValue primitive to String mappings
  • Warnings for precision loss

MapStruct Alternatives & Comparisons

What are some alternatives to MapStruct?
It is a java library that automatically plugs into your editor and build tools, spicing up your java. Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more.
It is a suite of data-processing tools for Java (and the JVM platform), including the flagship streaming JSON parser / generator library, matching data-binding library (POJOs to and from JSON) and additional data format modules to process data encoded in Avro, BSON, CBOR, CSV, Smile, (Java) Properties, Protobuf, XML or YAML; and even the large set of data format modules to support data types of widely used data types such as Guava, Joda.
Java 8
It is a revolutionary release of the world’s no 1 development platform. It includes a huge upgrade to the Java programming model and a coordinated evolution of the JVM, Java language, and libraries. Java 8 includes features for productivity, ease of use, improved polyglot programming, security and improved performance.
A library for composing asynchronous and event-based programs by using observable sequences for the Java VM.
The Guava project contains several of Google's core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.
See all alternatives

MapStruct's Followers
10 developers follow MapStruct to keep up with related blogs and decisions.
Miguel Salas
David Wroe
Manpreet Kaur
Leandro Portela
Stephane Kay
Ryan Lee
Andrew Danelz
Dan Batten
Yoav Aharoni