The Wayback Machine - https://web.archive.org/web/20221225165244/https://github.com/akarnokd/RxJavaInterop/
Skip to content

akarnokd/RxJavaInterop

3.x
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

RxJavaInterop

codecov.io Maven Central

RxJava 1.x: RxJava 1.x RxJava 3.x: RxJava 3.x

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

Interop between 2.x and 3.x

Check out the https://github.com/akarnokd/RxJavaBridge project.

Releases

gradle

dependencies {
    implementation "com.github.akarnokd:rxjava3-interop:3.0.2"
}

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.rxjava3.core.Flowable     f3  = RxJavaInterop.toV3Flowable(rx.Observable);

io.reactivex.rxjava3.core.Observable   o3  = RxJavaInterop.toV3Observable(rx.Observable);

io.reactivex.rxjava3.core.Single       s3  = RxJavaInterop.toV3Single(rx.Single);

io.reactivex.rxjava3.core.Completable  c3  = RxJavaInterop.toV3Completable(rx.Completable);

io.reactivex.rxjava3.core.Maybe        m3s = RxJavaInterop.toV3Maybe(rx.Single);

io.reactivex.rxjava3.core.Maybe        m3c = 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.rxjava3.subjects.Subject sj3 = RxJavaInterop.toV3Subject(rx.subjects.Subject);

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

// convert from 3.x to 1.x

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

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

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

// convert from 1.x to 3.x

io.reactivex.rxjava3.core.FlowableTransformer    ft3 = RxJavaInterop.toV3Transformer(
                                                           rx.Observable.Transformer);

io.reactivex.rxjava3.core.ObservableTransformer  ot3 = RxJavaInterop.toV3Transformer(
                                                           rx.Observable.Transformer, 
                                                           io.reactivex.rxjava3.core.BackpressureStrategy);

io.reactivex.rxjava3.core.SingleTransformer      st3 = RxJavaInterop.toV3Transformer(
                                                           rx.Single.Transformer);

io.reactivex.rxjava3.core.CompletableTransformer ct3 = RxJavaInterop.toV3Transformer(
                                                           rx.Completable.Transformer);

// convert from 3.x to 1.x

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

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

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

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

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

// convert from 1.x to 3.x

io.reactivex.rxjava3.core.FlowableOperator fo3 = RxJavaInterop.toV3Operator(rx.Observable.Operator);

// convert from 3.x to 1.x

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

Convert between 1.x Subscription and 3.x Disposable

// convert from 1.x to 3.x

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

// convert from 3.x to 1.x

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

Convert between 1.x Schedulers and 3.x Schedulers

// convert from 1.x to 3.x

io.reactivex.rxjava3.core.Scheduler s3 = RxJavaInterop.toV3Scheduler(rx.Scheduler);

// convert from 3.x to 1.x

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

About

Library to convert between RxJava 1.x and 2.x/3.x reactive types, schedulers and resource handles.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published