# Konvert

A Kotlin code generator, built on Kotlin Symbol Processing, that produces clean, null-safe mapping code between classes at compile time with no reflection and full Java interoperability.

Konvert generates Kotlin mapping code, using Kotlin Symbol Processing, for converting between data classes, enums, value classes, and regular Java-style classes. It is null-safe by default, supports smart conversions such as Int to String or Instant to Date, lets you define reusable custom converters, and can be extended through Java's Service Provider Interface for further control; it also maps collections and maps, including their elements, and gives fine-grained control over how individual properties are mapped.

Mapping code can be requested three ways: annotating a source class to generate a to-extension function, annotating a target class's companion object when the source class cannot be modified, or declaring an interface that Konvert implements as a mapper object. Generated code is produced at compile time, so there is zero reflection and zero runtime overhead, it is fully interoperable with Java, and it works with both Gradle and Maven.

Website: https://mcarleio.github.io/konvert/
