/RxJavaReactiveStreams

Adapter between RxJava and ReactiveStreams

Primary LanguageJavaApache License 2.0Apache-2.0

RxJava Reactive Streams

codecov.io Maven Central

This library provides adapters between RxJava and Reactive Streams. The Reactive Streams standard defines an API and runtime semantics for reactive data streams, that different tools can implement in order to interoperate with each other. This library allows RxJava to interoperate with other implementors of the Reactive Streams API.

It provides the following API:

package rx;

import org.reactivestreams.Publisher;

public abstract class RxReactiveStreams {

    public static <T> Publisher<T> toPublisher(Observable<T> observable) { … }

    public static <T> Observable<T> toObservable(Publisher<T> publisher) { … }

    public static <T> Publisher<T> toPublisher(Single<T> observable) { … }

    public static <T> Single<T> toSingle(Publisher<T> publisher) { … }

    public static <T> Publisher<T> toPublisher(Completable observable) { … }

    public static Completable toCompletable(Publisher<?> publisher) { … }

}

These methods can be used to convert between the Reactive Streams Publisher type, and RxJava's Observable type.

Some examples of this library being used for interop are available as part of this repository.

See the Reactive Streams website for links to other libraries that implement the Reactive Streams API, and can therefore interoperate with RxJava via these methods.

Learn more about RxJava on the Wiki Home and the Netflix TechBlog post where RxJava was introduced.

Communication

Binaries

Binaries and dependency information for Maven, Ivy, Gradle and others can be found at http://search.maven.org.

Example for Maven:

<dependency>
    <groupId>io.reactivex</groupId>
    <artifactId>rxjava-reactive-streams</artifactId>
    <version>x.y.z</version>
</dependency>

and for Ivy:

<dependency org="io.reactivex" name="rxjava-reactive-streams" rev="x.y.z" />

Build

To build:

$ git clone git@github.com:ReactiveX/RxJavaReactiveStreams.git
$ cd RxJavaReactiveStreams/
$ ./gradlew build

Bugs and Feedback

For bugs, questions and discussions please use the Github Issues.

LICENSE

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.