= 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.
