Stop writing database converters, json marshallers, and object mappers for simple domain types — Lazyval generates them at compile time for both Java and Kotlin.
Lazyval is a Java annotation processor & Kotlin symbol processor generating integration code, often needed when modeling "Domain Primitives", which are simple, domain-specific wrapper types.
-
Codegenerators
-
Mapstruct mapper
-
JPA AttributeConverters
-
Jackson module with de/serializers
-
-
Smart
-
Only generate code when the necessary dependencies are available
-
Factory-methods can be named arbitrarily, as long as the types match and they are unique
-
Framework detection
-
Proper feedback during compilation with warnings/error
-
-
SPI for custom generators
-
Testkit
-
A core design goal of Lazyval is that it will never require any runtime dependency for itself: no marker interfaces or generic types, nor glue code.
See the documentation for motivation and getting started.
You can find examples in the examples folder as well as within the Java Quarkus Integration-Test and Kotlin Spring Integration-Test
Contributions are welcome! Please read our contributing guidelines before opening an issue or pull request.
This project is licensed under the [Apache License 2.0](LICENSE). You are free to use, modify, and distribute it under the terms of that license.
Important Notice regarding the EU Cyber Resilience Act (CRA): This project is a developer tool and does not constitute a "product with digital elements" as defined under the CRA. It is not executed in production environments, nor does it process data during runtime.
The responsibility for the security, compliance, and correctness of the generated code lies entirely with the user. If the generated clients are used in safety-critical or regulated domains, users must perform their own security and compliance assessments.
This project provides templates and helper scripts on an "as-is" basis, without any warranties.
The maintainers do not accept any liability for:
-
the security or correctness of generated code,
-
suitability for use in any specific technical or regulatory context.
Use of this project is at your own risk. Always validate generated code in accordance with your organization’s quality and security standards.