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. Event Bus

  • Camel: Camel module for Jooby.

1.5. JSON

  • Gson: Gson module for Jooby.

  • Jackson: Jackson module for Jooby.

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

  • Avaje-JsonB: Avaje-JsonB module for Jooby.

1.6. OpenAPI

1.7. Template Engine

1.8. Security

  • Jasypt: Encripted configuration files.

  • Pac4j: Security engine module.

1.9. Session Store

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

  • JWT: JSON Web Token session store.

  • Redis: Save session data on redis.

1.10. Misc

  • Node: Node integration module.

  • Quartz: Quartz scheduler module.

.