https://github.com/quantummaid/mapmaid
MapMaid serializes, deserializes and validates Java objects in a clean and non-invasive way.
https://github.com/quantummaid/mapmaid
Last synced: about 1 year ago
JSON representation
MapMaid serializes, deserializes and validates Java objects in a clean and non-invasive way.
- Host: GitHub
- URL: https://github.com/quantummaid/mapmaid
- Owner: quantummaid
- License: apache-2.0
- Created: 2019-12-18T18:01:43.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-12-14T20:53:55.000Z (over 3 years ago)
- Last Synced: 2025-04-04T18:47:23.418Z (about 1 year ago)
- Language: Java
- Homepage: https://quantummaid.de
- Size: 2.25 MB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://bestpractices.coreinfrastructure.org/projects/3873)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.mapmaid%3Amapmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.mapmaid%3Amapmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.mapmaid%3Amapmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.mapmaid%3Amapmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.mapmaid%3Amapmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.mapmaid%3Amapmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.mapmaid%3Amapmaid-parent)
[](https://sonarcloud.io/dashboard?id=de.quantummaid.mapmaid%3Amapmaid-parent)
[](https://github.com/quantummaid/mapmaid)
[](https://maven-badges.herokuapp.com/maven-central/de.quantummaid.mapmaid/core)
[](https://github.com/quantummaid/mapmaid)
[](https://opensource.org/licenses/Apache-2.0)
[](https://join.slack.com/t/quantummaid/shared_invite/zt-cx5qd605-vG10I~WazfgH9WOnXMzl3Q)
[](https://gitter.im/quantum-maid-framework/community)
[](https://twitter.com/quantummaid)

# MapMaid
MapMaid serializes, deserializes and validates Java objects in a clean and non-invasive way.
It deeply understands and respects the concepts of Domain-Driven Design.
## Rationale
Almost any modern application nowadays is dealing with mapping incoming requests to domain objects and
outputting resulting domain objects to a specific format (typically JSON, XML or YAML).
As a result, we keep writing the same code over and over again:
* Parse strings into domain objects
* Validate the objects on initialization
* Process the requests
* Serialize the response objects
While there are numerous frameworks that help you on some of the stages of this process, we believe there is a need for a simple,
non-invasive library that would allow you to integrate this process into your application seamlessly and concentrate on
your business logic.
## Highlighted features
- **Designed for Domain-Driven Design**:
- MapMaid automatically understands factory methods
- MapMaid understands the concept of **Custom Primitives** or **Value Types**
- MapMaid understands the concept of **Serialized Objects**
- **No Magic** - MapMaid is using your objects the same way as a programmer:
- MapMaid will not read nor write private fields
- MapMaid will not write values into final fields
- MapMaid will not invoke private methods
- MapMaid will not generate dynamic proxies
- MapMaid will not generate bytecode
- MapMaid does not favour the use of annotations
- **Domain-Driven Validation**:
- MapMaid allows you to check for validation exceptions and aggregates them accordingly
- You will know precisely which field of which object was faulty
- MapMaid also offers ways to detect redundant validation exceptions
- **Non-intrusive usage and configuration:**
- Configuration in one place
- No annotations
- Simple adaptation to your specific style of defining objects
- No dependencies to serialization and validation frameworks in your domain code
- **Flexible:**
- Support for all common data formats (JSON, XML and YAML)
- Serialize and deserialize any object of any class - no matter how weird their structure
## Getting started
MapMaid is part of the QuantumMaid framework which provides [easy-to-follow and
interesting tutorials](https://github.com/quantummaid/quantummaid-tutorials/blob/master/README.md).
The MapMaid documentation can be found [here](https://quantummaid.de/docs.html).
## Get in touch
Feel free to join us on [Slack](https://join.slack.com/t/quantummaid/shared_invite/zt-cx5qd605-vG10I~WazfgH9WOnXMzl3Q)
or [Gitter](https://gitter.im/quantum-maid-framework/community) to ask questions, give feedback or just discuss software
architecture with the team behind MapMaid. Also, don't forget to visit our [website](https://quantummaid.de) and follow
us on [Twitter](https://twitter.com/quantummaid)!