Kotlin multiplatform implementation of Reactive Extensions.
Library status: under development, beta pre-release is available, public API is subject to change
Add Bintray repository into your root build.gradle file:
repositories {
maven {
url "https://dl.bintray.com/badoo/maven"
}
}There are four modules published:
reaktive- the main Reaktive library (multiplatform)reaktive-annotations- collection of annotations (mutiplatform)reaktive-test- testing utilities (multiplatform)rxjava2-interop- RxJava2 interoperability helpers (JVM and Android)
Each multiplatform module is compiled against each target and published in metadata publishing mode.
Kotlin common:
implementation 'com.badoo.reaktive:<module-name>:<latest-version>'JVM:
implementation 'com.badoo.reaktive:<module-name>-jvm:<latest-version>'Android (debug and release):
implementation 'com.badoo.reaktive:<module-name>-android:<latest-version>'iOS 32:
implementation 'com.badoo.reaktive:<module-name>-ios32:<latest-version>'iOS 64:
implementation 'com.badoo.reaktive:<module-name>-ios64:<latest-version>'iOS sim:
implementation 'com.badoo.reaktive:<module-name>-sim:<latest-version>'JavaScript:
implementation 'com.badoo.reaktive:<module-name>-js:<latest-version>'Linux x64:
implementation 'com.badoo.reaktive:<module-name>-linuxx64:<latest-version>'Linux ARM 32 hfp:
implementation 'com.badoo.reaktive:<module-name>-linuxarm32hfp:<latest-version>'implementation 'com.badoo.reaktive:<module-name>:<latest-version>'- Multiplatform: JVM, Android, iOS, JavaScript, Linux X64, Linux ARM 32 hfp
- Schedulers support: computation, IO, trampoline, main
- True multithreading for Kotlin/Native (there are some limitations)
- Supported sources: Observable, Maybe, Single, Completable
- Subjects: PublishSubject, BehaviorSubject
- Interoperability with RxJava2: conversion of sources between Reaktive and RxJava2, ability to reuse RxJava2's schedulers
- Supported operators:
- Observable: asCompletable, collect, combineLatest, concatMap, concatWith, concatWithValue, debounce, delay, defaultIfEmpty, distinctUntilChanged, doOnBeforeXxx, filter, firstOrComplete, firstOrDefault, firstOrError, flatMap, flatMapCompletable, flatMapMaybe, flatMapSingle, flatten, map, merge, notNull, observeOn, ofType, onErrorResumeNext, onErrorReturn, onErrorReturnValue, sample, scan, skip, startWith, startWithValue, subscribeOn, switchIfEmpty, switchMap, throttle, toCompletable, toList, withLatestFrom, zip
- Maybe: asCompletable, asObservable, asSingle, concat, delay, doOnBeforeXxx, filter, flatMap, flatMapCompletable, flatMapObservable, flatMapSingle, flatten, map, merge, notNull, observeOn, ofType, onErrorResumeNext, onErrorReturn, onErrorReturnValue, subscribeOn, zip
- Single: asCompletable, asMaybe, asObservable, blockingGet, concat, delay, doOnBeforeXxx, filter, flatMap, flatMapCompletable, flatMapMaybe, flatMapObservable, flatten, map, merge, notNull, observeOn, ofType, onErrorResumeNext, onErrorReturn, onErrorReturnValue, subscribeOn, zip
- Completable: andThen, asMaybe, asObservable, asSingle, concat, delay, doOnBeforeXxx, merge, observeOn, onErrorComplete, onErrorResumeNext, subscribeOn
- Plus multiple factory and conversion functions