=== Modules

**Modules are simply built-in Extensions.** They are thin layers that bootstrap and configure external third-party libraries (like HikariCP, Jackson, or Hibernate) using Jooby's `Extension` API.

Unlike other frameworks, Jooby modules **do not** create new layers of abstraction or custom wrappers around the libraries they integrate. Instead, they expose the raw library components directly to your application via the Service Registry, allowing you to use the library's native API exactly as its creators intended.

Modules are distributed as separate dependencies. Below is the catalog of officially supported Jooby modules:

==== AI
  * link:{uiVersion}/modules/langchain4j[LangChain4j]: Supercharge your Java application with the power of LLMs.
  * link:{uiVersion}/modules/mcp[MCP]: The MCP module provides seamless integration with the Model Context Protocol.

==== Cloud
  * link:{uiVersion}/modules/awssdkv2[AWS-SDK v2]: Amazon Web Service module SDK 2.
  * link:{uiVersion}/modules/aws[AWS SDK v1]: Amazon Web Service module SDK 1.

==== Data
  * link:{uiVersion}/modules/ebean[Ebean]: Ebean ORM module.
  * link:{uiVersion}/modules/flyway[Flyway]: Flyway migration module.
  * link:{uiVersion}/modules/graphql[GraphQL]: GraphQL Java module.
  * link:{uiVersion}/modules/hikari[HikariCP]: A high-performance JDBC connection pool.
  * link:{uiVersion}/modules/hibernate[Hibernate]: Hibernate ORM module.
  * link:{uiVersion}/modules/jdbi[Jdbi]: Jdbi module.
  * link:{uiVersion}/modules/kafka[Kafka]: Kafka module.
  * link:{uiVersion}/modules/redis[Redis]: Redis module.
  * link:{uiVersion}/modules/vertx-mysql-client[Vertx mySQL client]: Vertx reactive mySQL client module.
  * link:{uiVersion}/modules/vertx-pg-client[Vertx Postgres client]: Vertx reactive Postgres client module.

==== Dependency Injection
  * link:{uiVersion}/modules/avaje-inject[Avaje Inject]: Avaje Inject module.
  * link:{uiVersion}/modules/guice[Guice]: Guice module.

==== Validation
  * link:{uiVersion}/modules/avaje-validator[Avaje Validator]: Avaje Validator module.
  * link:{uiVersion}/modules/hibernate-validator[Hibernate Validator]: Hibernate Validator module.

==== Development Tools
  * link:{uiVersion}/#tooling-and-operations-development[Jooby Run]: Run and hot reload your application. 
  * link:{uiVersion}/modules/whoops[Whoops]: Pretty page stacktrace reporter.
  * link:{uiVersion}/modules/metrics[Metrics]: Application metrics from the excellent metrics library.

==== Event Bus
  * link:{uiVersion}/modules/camel[Camel]: Camel module for Jooby.
  * link:{uiVersion}/modules/vertx[Vertx]: Vertx module for Jooby.

==== JSON
  * link:{uiVersion}/modules/avaje-jsonb[Avaje-JsonB]: Avaje-JsonB module for Jooby.
  * link:{uiVersion}/modules/gson[Gson]: Gson module for Jooby.
  * link:{uiVersion}/modules/jackson2[Jackson2]: Jackson2 module for Jooby.
  * link:{uiVersion}/modules/jackson3[Jackson3]: Jackson3 module for Jooby.
  * link:{uiVersion}/modules/yasson[JSON-B]: JSON-B module for Jooby.

==== OpenAPI
  * link:{uiVersion}/modules/openapi[OpenAPI]: OpenAPI supports.

==== Template Engine
  * link:{uiVersion}/modules/handlebars[Handlebars]: Handlebars template engine.
  * link:{uiVersion}/modules/jstachio[JStachio]: JStachio template engine.
  * link:{uiVersion}/modules/jte[jte]: jte template engine.
  * link:{uiVersion}/modules/freemarker[Freemarker]: Freemarker template engine.
  * link:{uiVersion}/modules/pebble[Pebble]: Pebble template engine.
  * link:{uiVersion}/modules/rocker[Rocker]: Rocker template engine.
  * link:{uiVersion}/modules/thymeleaf[Thymeleaf]: Thymeleaf template engine.

==== Remote Procedure Calls (RPC)
  * link:{uiVersion}/modules/gRPC[gRPC]: A high-performance, strictly-typed protocol utilizing Protocol Buffers and HTTP/2 multiplexing. Ideal for backend-to-backend communication and polyglot microservices.
  * link:{uiVersion}/modules/json-rpc[json-rpc]: A lightweight, stateless, and simple JSON-encoded protocol. Excellent for rapid integrations and environments where standard JSON is preferred.
  * link:{uiVersion}/modules/tRPC[tRPC]: A RPC implementation that provides end-to-end type safety directly between your Java backend and TypeScript clients, without requiring intermediate build steps or code generation.

==== Security
  * link:{uiVersion}/modules/jasypt[Jasypt]: Encrypted configuration files.
  * link:{uiVersion}/modules/pac4j[Pac4j]: Security engine module.

==== Session Store
  * link:{uiVersion}/modules/caffeine[Caffeine]: In-memory session store using Caffeine cache.
  * link:{uiVersion}/modules/jwt-session-store[JWT]: JSON Web Token session store.
  * link:{uiVersion}/modules/redis#redis-http-session[Redis]: Save session data on redis.

==== Scheduler
  * link:{uiVersion}/modules/db-scheduler[DbScheduler]: Db scheduler module.
  * link:{uiVersion}/modules/quartz[Quartz]: Quartz scheduler module.
