vertx-rx icon indicating copy to clipboard operation
vertx-rx copied to clipboard

Reactive Extensions for Vert.x

= Rx extension for Vert.x

image:https://github.com/vert-x3/vertx-rx/workflows/CI/badge.svg?branch=master[Build Status,link=https://github.com/vert-x3/vertx-rx/actions?query=workflow%3ACI]

Vert.x module adding support for Reactive Extensions (Rx) using the Rx libraries. This allows Vert.x developers to use the Rx type-safe composable API to build Vert.x verticles. This module provides helpers for adapting Vert.x stream and future constructs to Rx observables.

== Documentation

  • http://vertx.io/docs/vertx-rx/java/[RxJava Documentation]
  • http://vertx.io/docs/vertx-rx/java2/[RxJava 2 Documentation]
  • http://vertx.io/docs/vertx-rx/java3/[RxJava 3 Documentation]

== Stack integration

RxJava, RxJava2 and RxJava3 are integrated with the Vert.x stack.

=== Integration tests

Integration tests are placed here:

  • https://github.com/vert-x3/vertx-rx/tree/master/rx-java/src/test/java/io/vertx/it[RxJava]
  • https://github.com/vert-x3/vertx-rx/tree/master/rx-java2/src/test/java/io/vertx/it[RxJava 2]
  • https://github.com/vert-x3/vertx-rx/tree/master/rx-java3/src/test/java/io/vertx/it[RxJava 3]

=== Integration docs

Integration docs are placed here:

  • https://github.com/vert-x3/vertx-rx/tree/master/rx-java3/src/main/asciidoc[RxJava 3]

The corresponding component uses an asciidoctor https://asciidoctor.org/docs/user-manual/#include-directive[include] directive to embed the doc snippet:

[source,asciidoc]

ifeval::["$lang" == "java"] include::override/rxjava3.adoc[] endif::[]

Vert.x Web Client example:

  • https://github.com/vert-x3/vertx-web/blob/master/vertx-web-client/src/main/asciidoc/override/rxjava3.adoc

is replaced by

  • https://github.com/vert-x3/vertx-rx/blob/master/rx-java3/src/main/asciidoc/vertx-web-client/java/override/rxjava3.adoc

The final aggregation happens in the https://github.com/vert-x3/vertx-stack/tree/master/stack-docs[stack generation] module.