1. Modules

Modules are a key concept for building reusable and configurable pieces of software.

Modules (unlike in other frameworks) are thin and do a lot of work to bootstrap and configure an external library, but they DO NOT provide a new level of abstraction nor [do] they provide a custom API to access functionality in that library. Instead they expose the library components as they are.

Modules are distributed as separated jar/dependency and usually implement the Extension API.

In general they provide a builder class to create the and configure the external library from configuration properties.

Available modules are listed next.

1.1. Cloud

  • AWS: Amazon Web Service module.

1.2. Data

1.3. Development Tools

  • Jooby Run: Run and hot reload your application.

  • Node: Download, Install and Run node locally.

  • Whoops: Pretty page stacktrace reporter.

  • Metrics: Application metrics from the excellent metrics library.

1.4. JSON

  • Gson: Gson module for Jooby.

  • Jackson: Jackson module for Jooby.

  • JSON-B: JSON-B module for Jooby.

1.5. OpenAPI

1.6. Template Engine

1.7. Security

  • Jasypt: Encripted configuration files.

  • Pac4j: Security engine module.

1.8. Session Store

  • Caffeine: In-memory session store using Caffeine cache.

  • JWT: JSON Web Token session store.

  • Redis: Save session data on redis.

1.9. Misc

  • Node: Node integration module.

  • Quartz: Quartz scheduler module.