Compile-Time generation of gson adapters
Go to file
Johannes Frohnmeyer 47c77a116b
Support builders
2022-11-01 15:39:50 +01:00
gson-compile-annotations Support builders 2022-11-01 15:39:50 +01:00
gson-compile-core Add support for arrays 2022-11-01 13:48:23 +01:00
gson-compile-example Support builders 2022-11-01 15:39:50 +01:00
gson-compile-processor Support builders 2022-11-01 15:39:50 +01:00
.gitignore Support for 1d classes of primitives 2022-10-31 20:52:48 +01:00
LICENSE.md License 2022-11-01 10:15:29 +01:00
README.md Implement GPrefer 2022-11-01 15:24:59 +01:00
build.gradle.kts Support for 1d classes of primitives 2022-10-31 20:52:48 +01:00
settings.gradle.kts Support for 1d classes of primitives 2022-10-31 20:52:48 +01:00

README.md

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
  • Comments via @GComment
  • Records
  • Nested serializable types
  • Arrays
  • Collections (Sets, Lists, Queues, Deques)
  • GPrefer to resolve multiple factories/constructors

TODO

  • Setters/field access in read()
  • Maps with string, primitive or enum keys
  • Date via ISO8601Utils
  • Enums
  • Support for nested types from libraries
  • Static classes (for configs)

Credit

The Gson-Compile processor is based on gsonvalue and value-processor by Eva Tatarka. The API was inspired by kotlinx.serialization by Jetbrains The serialization is powered by my fork of gson by Google