RxJava2Interop

Additional

Language
Java
Version
v3.0.0-RC5 (Nov 18, 2019)
Created
Aug 19, 2016
Updated
Dec 2, 2019
Owner
David Karnok (akarnokd)
Contributors
Josh Burton (athornz)
Artem Zinnatullin :slowpoke: (artem-zinnatullin)
David Karnok (akarnokd)
Jake Wharton (JakeWharton)
Niklas Baudy (vanniktech)
PaulWoitaschek
inferno23
dependabot-preview[bot]
8
Activity
Badge
Generate
Download
Source code

Advertising

RxJavaInterop

RxJava 1.x: RxJava 3.x:

Library to convert between RxJava 1.x and 3.x reactive types.

Releases

gradle

dependencies {
    compile "com.github.akarnokd:rxjava3-interop:3.0.0-RC5"
}

Maven search:

http://search.maven.org

Usage

Convert between the reactive base types

import hu.akarnokd.rxjava3.interop.RxJavaInterop;

// convert from 1.x to 3.x

io.reactivex.Flowable    f2 = RxJavaInterop.toV3Flowable(rx.Observable);

io.reactivex.Observable  o2 = RxJavaInterop.toV3Observable(rx.Observable);

io.reactive.Single       s2 = RxJavaInterop.toV3Single(rx.Single);

io.reactivex.Completable c2 = RxJavaInterop.toV3Completable(rx.Completable);

io.reactivex.Maybe m2s = RxJavaInterop.toV3Maybe(rx.Single);

io.reactivex.Maybe m2c = RxJavaInterop.toV3Maybe(rx.Completable);

// convert from 3.x to 1.x

rx.Observable  o1 = RxJavaInterop.toV1Observable(Publisher);

rx.Observable  q1 = RxJavaInterop.toV1Observable(ObservableSource, BackpressureStrategy);

rx.Single      s1 = RxJavaInterop.toV1Single(SingleSource);

rx.Completable c1 = RxJavaInterop.toV1Completable(CompletableSource);

rx.Single      s1m = RxJavaInterop.toV1Single(MaybeSource);

rx.Completable c1m = RxJavaInterop.toV1Completable(MaybeSource);

Convert between Subjects and Processors.

Note that 3.x Subjects and FlowableProcessors support only the same input and output types.

// convert from 1.x to 3.x

io.reactivex.subjects.Subject sj2 = RxJavaInterop.toV3Subject(rx.subjects.Subject);

io.reactivex.processors.FlowableProcessor fp2 = RxJavaInterop.toV3Processor(rx.subjects.Subject);

// convert from 3.x to 1.x

rx.subjects.Subject sj1 = RxJavaInterop.toV1Subject(io.reactivex.subjects.Subject);

rx.subjects.Subject sj1b = RxJavaInterop.toV1Subject(io.reactivex.processors.FlowableProcessor);

Convert between 1.x X.Transformers and 3.x XTransformers.

// convert from 1.x to 3.x

io.reactivex.FlowableTransformer ft2 = RxJavaInterop.toV3Transformer(rx.Observable.Transformer);

io.reactivex.ObservableTransformer ot2 = RxJavaInterop.toV3Transformer(
                                             rx.Observable.Transformer, io.reactivex.BackpressureStrategy);

io.reactivex.SingleTransformer st2 = RxJavaInterop.toV3Transformer(rx.Single.Transformer);

io.reactivex.CompletableTransformer ct2 = RxJavaInterop.toV3Transformer(rx.Completable.Transformer);

// convert from 3.x to 1.x

rx.Observable.Transformer ft1 = RxJavaInterop.toV1Transformer(io.reactivex.FlowableTransformer);

rx.Observable.Transformer ot1 = RxJavaInterop.toV1Transformer(
                                                  io.reactivex.ObservableTransformer, io.reactivex.BackpressureStrategy);

rx.Single.Transformer st1 = RxJavaInterop.toV1Transformer(io.reactivex.SingleTransformer);

rx.Completable.Transformer ct1 = RxJavaInterop.toV1Transformer(io.reactivex.CompletableTransformer);

Convert between 1.x Flowable.Operator and 3.x FlowableOperator

// convert from 1.x to 3.x

io.reactivex.FlowableOperator fo2 = RxJavaInterop.toV3Operator(rx.Observable.Operator);

// convert from 3.x to 1.x

rx.Observable.Operator fo1 = RxJavaInterop.toV1Operator(io.reactivex.FlowableOperator);

Convert between 1.x Subscription and 3.x Disposable

// convert from 1.x to 3.x

io.reactivex.disposables.Disposable d2 = RxJavaInterop.toV3Disposable(rx.Subscription);

// convert from 3.x to 1.x

rx.Subscription s1 = RxJavaInterop.toV1Subscription(io.reactivex.disposables.Disposable);

Convert between 1.x Schedulers and 3.x Schedulers

// convert from 1.x to 3.x

io.reactivex.Scheduler s2 = RxJavaInterop.toV3Scheduler(rx.Scheduler);

// convert from 3.x to 1.x

rx.Scheduler s1 = RxJavaInterop.toV1Scheduler(io.reactivex.Scheduler);