Pal is a compile-time only Library that expands on the abilities of java compiler Annotation Processor extensions. It allows for traditional source transformations as well as post-compile bytecode transformations, using the ByteBuddy library. Pal provides support for multithreaded annotation processing, for both source and bytecode, compiler event hooks, processor chaining, differentiated compile-time and runtime class definitions, and much more. The public API further allows for user defined pal annotations and processors that may be used throughout any project.
Pal is a compile-time only library
Upon compilation with the Pal library, all annotations defined through the Pal API will be stripped from the output classes of a project, removing any dependency on the library in production.
- JDK 8, 9 or 10+
- Gradle 4.8+
- CMake 3.8+
gradle clean build exampleJar
This project is licensed under the M.I.T License
This library is very much still under development and does not currently have a stable release. The API is subject to dramatic and breaking changes. Use at your own risk.