Skip to content

Available Modules

This project provides Mutiny bindings for a wide range of Vert.x modules: web, databases, messaging, authentication, templating, and more.

Naming Convention

All modules share the same group ID and follow a predictable artifact ID pattern:

  • Group ID: io.smallrye.reactive
  • Artifact ID: smallrye-mutiny-vertx-{name}

The {name} suffix mirrors the Vert.x module name. For example, the Vert.x vertx-web-client module becomes smallrye-mutiny-vertx-web-client.

Version Management

Import the BOM to manage versions centrally. See Getting Started — Adding the BOM for the dependency management snippet.

Finding the Right Module

To find the Mutiny binding for a Vert.x module, take the Vert.x artifact ID and prefix it with smallrye-mutiny-. For example, the Vert.x vertx-pg-client module becomes smallrye-mutiny-vertx-pg-client:

<dependency>
    <groupId>io.smallrye.reactive</groupId>
    <artifactId>smallrye-mutiny-vertx-pg-client</artifactId>
</dependency>

This pattern applies consistently across all modules.

Imports

When using a Mutiny binding, import from the io.vertx.mutiny.* packages rather than io.vertx.core.* or io.vertx.ext.*. The Mutiny classes are generated shims that wrap the original Vert.x types.

// Correct: Mutiny shim
import io.vertx.mutiny.ext.web.client.WebClient;

// Wrong: original Vert.x type
import io.vertx.ext.web.client.WebClient;

Configuration and options classes (e.g., WebClientOptions) are data objects and are used directly from the Vert.x packages since they do not need shims.