FlatPack is serialization framework used by Perka to make its JPA entities available via REST to JavaScript, iOS, and Android clients.
- Serialize arbitrary JPA object graphs into payloads that can be processed easily in non-Java environments.
- Support role- and principal-based security on property access.
- Integration with jax-rs (specifically Jersey).
- Straightforward code generation of client libraries and documentation.
- Minimize developer friction
apidoc
andapidoc-plugin
are used during the maven build process to make JavaDoc strings available toApiDescriber
.client
provides support code for generated client libraries.core
contains the serialization logic. The central types areFlatPack
,Packer
, andUnpacker
.demo-client
anddemo-server
show a very simple JAX-RS server and how to use generated client code. Thedemo-client
module also contains smoke-tests.eclipse-plugin
contains an m2eclipse connector for the FlatPack plugins. A pre-built drop-in is available at from the project downloads.fast
andfast-plugin
, the FlatPack Automatic Source Tool, take anApiDescription
and generate client access libraries consisting of DTO objects and API request methods.jersey
wires FlatPack into Jersey's request dispatch logic. TheApiDescriber
type will produce a FlatPack description of the API server's methods and entities.search
is utility code.
Additional documentation is available in the FlatPack wiki.