2022-11-01 09:55:08 +01:00
# Gson-Compile
A java annotation processor implementing automated type adapter generation for gson-comments.
The goal of this AP is to
- Support common features such as getters, setters, fields, constructors
- Support modern language features such as records
- Support json5 through gson-comments
- Be compile-time where possible (ideally compatible with proguard)
## Currently supported
- Primitive types
- Adapter generation
- Utility methods
- Strict no-reflection enforcement via `-AgsonCompileNoReflect`
2022-11-01 10:08:03 +01:00
- Comments via `@GComment`
2022-11-01 11:50:02 +01:00
- Records
- Nested serializable types
2022-11-01 09:55:08 +01:00
## TODO
- Arrays
2022-11-01 11:50:02 +01:00
- Collections (Sets, Lists, Queues, Deques)
- Maps
2022-11-01 09:55:08 +01:00
- Date
- Enums
- Support for nested types from libraries
- Static classes (for configs)
2022-11-01 10:15:29 +01:00
- GPrefer to bypass builder/constructor recovery
## Credit
The Gson-Compile processor is based on [gsonvalue ](https://github.com/evant/gsonvalue ) and [value-processor ](https://github.com/evant/value-processor ) by Eva Tatarka.
The API was inspired by [kotlinx.serialization ](https://github.com/Kotlin/kotlinx.serialization ) by Jetbrains
2022-11-01 10:29:09 +01:00
The serialization is powered by [my fork ](https://gitlab.com/JFronny/gson-comments ) of [gson ](https://github.com/google/gson ) by Google