All Projects → akarnokd → Rxjavafiberinterop

akarnokd / Rxjavafiberinterop

Licence: apache-2.0
Library for interoperation between RxJava 3 and Project Loom's Fibers.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Rxjavafiberinterop

Rsocket Java
Java implementation of RSocket
Stars: ✭ 2,099 (+10947.37%)
Mutual labels:  rxjava, reactive
rxjava2-http
Transmit RxJava2 Flowable over http with non-blocking backpressure
Stars: ✭ 19 (+0%)
Mutual labels:  reactive, rxjava
Rxjava2 Extras
Utilities for use with RxJava 2
Stars: ✭ 167 (+778.95%)
Mutual labels:  rxjava, reactive
Rxbus
Android reactive event bus that simplifies communication between Presenters, Activities, Fragments, Threads, Services, etc.
Stars: ✭ 79 (+315.79%)
Mutual labels:  rxjava, reactive
Rxgps
Finding current location cannot be easier on Android !
Stars: ✭ 307 (+1515.79%)
Mutual labels:  rxjava, reactive
Vertx Mqtt
Vert.x MQTT
Stars: ✭ 117 (+515.79%)
Mutual labels:  rxjava, reactive
Javawebsocketclient
RxJava WebSocket library for Java and Android
Stars: ✭ 188 (+889.47%)
Mutual labels:  rxjava, reactive
Rxjava2 Operators Magician
你用不惯 RxJava,只因缺了这把钥匙 🔑 You are not used to RxJava, just because of the lack of this key.
Stars: ✭ 868 (+4468.42%)
Mutual labels:  rxjava, reactive
Rxkprefs
🛠 A small Kotlin library to make shared preferences easy + RxJava and Coroutines support
Stars: ✭ 264 (+1289.47%)
Mutual labels:  rxjava, reactive
Binder
An Annotation processor that allows binding two classes with each other, where the first class can listen to the updates of the second class ... ideal for MVVM and similar patterns
Stars: ✭ 21 (+10.53%)
Mutual labels:  reactive, rxjava
Android Okgraphql
Reactive GraphQl client for Android
Stars: ✭ 64 (+236.84%)
Mutual labels:  rxjava, reactive
Vertx Guide For Java Devs
Vert.x 3 guide for Java developers
Stars: ✭ 500 (+2531.58%)
Mutual labels:  rxjava, reactive
Rxplaces
A Google Maps Webservice API made simple.
Stars: ✭ 56 (+194.74%)
Mutual labels:  rxjava, reactive
Knotx
Knot.x is a highly-efficient and scalable integration framework designed to build backend APIs
Stars: ✭ 119 (+526.32%)
Mutual labels:  rxjava, reactive
Rxjava Android Samples
Learning RxJava for Android by example
Stars: ✭ 7,520 (+39478.95%)
Mutual labels:  rxjava, reactive
Rxjava Spring Boot Starter
RxJava Spring MVC integration
Stars: ✭ 180 (+847.37%)
Mutual labels:  rxjava, reactive
Rxreactor
A Kotlin framework for a reactive and unidirectional RxJava application architecture
Stars: ✭ 19 (+0%)
Mutual labels:  rxjava, reactive
RxJava-Codelab
Codelab project for demonstration of RxJava features
Stars: ✭ 44 (+131.58%)
Mutual labels:  reactive, rxjava
Rxjava2 Jdbc
RxJava2 integration with JDBC including Non-blocking Connection Pools
Stars: ✭ 360 (+1794.74%)
Mutual labels:  rxjava, reactive
Rxfirebase
Rxjava 2.0 wrapper on Google's Android Firebase library.
Stars: ✭ 509 (+2578.95%)
Mutual labels:  rxjava, reactive

RxJavaFiberInterop

Library for interoperation between RxJava 3 and Project Loom's Fibers.

codecov.io Maven Central

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

Always requires the latest Loom build from http://jdk.java.net/loom/

Note that Loom is in early access and the API, naming and usage keeps changing, a lot.

Components

FiberInterop

create

Creates a Flowable from a generator callback, that can emit via FiberEmitter, run in a Fiber backed by the ForkJoinPool.commonPool() or any Executor/Scheduler provided as argument and suspended automatically on downstream backpressure.

FiberInterop.create(emitter -> {
    for (int i = 1; i <= 5; i++) {
         emitter.emit(1);
    }
})
.test()
.awaitDone(5, TimeUnit.SECONDS)
.assertResult(1, 2, 3, 4, 5);

transform

Transforms each upstream value via a callback that can emit zero or more values for each of those upstream values, run in a Fiber backed by the ForkJoinPool.commonPool() or any Executor/Scheduler provided as argument and suspended automatically on downstream backpressure.

Flowable.range(1, 5)
.compose(FiberInterop.transform((value, emitter) -> {
    emitter.emit(value);
    emitter.emit(value + 1);
}))
.test()
.awaitDone(5, TimeUnit.SECONDS)
.assertResult(1, 2, 2, 3, 3, 4, 4, 5, 5, 6);
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].