All Projects → akarnokd → Ixjava

akarnokd / Ixjava

Licence: apache-2.0
Iterable Extensions for Java 6+

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Ixjava

Rxdownloader
Demo of Downloading Songs/Images through Android Download Manager using RxJava2
Stars: ✭ 166 (-20.95%)
Mutual labels:  rxjava, stream
rxjava2-http
Transmit RxJava2 Flowable over http with non-blocking backpressure
Stars: ✭ 19 (-90.95%)
Mutual labels:  stream, rxjava
RxLoading
RxJava library for showing a loading (i.e. progress bar) state while waiting for async data with minimal effort and advanced options.
Stars: ✭ 49 (-76.67%)
Mutual labels:  stream, rxjava
Reactive
Reactive: Examples of the most famous reactive libraries that you can find in the market.
Stars: ✭ 256 (+21.9%)
Mutual labels:  rxjava, stream
Rxjavajdk8interop
RxJava 2/3 interop library for supporting Java 8 features such as Optional, Stream and CompletableFuture [discontinued]
Stars: ✭ 70 (-66.67%)
Mutual labels:  rxjava, stream
Grpc By Example Java
A collection of useful/essential gRPC Java Examples
Stars: ✭ 709 (+237.62%)
Mutual labels:  rxjava, stream
ProxerAndroid
The official Android App of Proxer.Me
Stars: ✭ 105 (-50%)
Mutual labels:  stream, rxjava
Rsocket Java
Java implementation of RSocket
Stars: ✭ 2,099 (+899.52%)
Mutual labels:  rxjava, stream
Rxjava2 Extras
Utilities for use with RxJava 2
Stars: ✭ 167 (-20.48%)
Mutual labels:  rxjava, stream
Okhttp Oauth2 Client
Android OAuth2 client using OkHttp
Stars: ✭ 193 (-8.1%)
Mutual labels:  rxjava
Moviehunt
Movie Android App written in Kotlin, MVVM, RxJava, Android Architecture Components.
Stars: ✭ 199 (-5.24%)
Mutual labels:  rxjava
Mvpdemo
Stars: ✭ 193 (-8.1%)
Mutual labels:  rxjava
Amazonriver
amazonriver 是一个将postgresql的实时数据同步到es或kafka的服务
Stars: ✭ 198 (-5.71%)
Mutual labels:  stream
Rxble
使用 RxJava 封装的低功耗蓝牙类库
Stars: ✭ 203 (-3.33%)
Mutual labels:  rxjava
Component
🔥🔥🔥A powerful componentized framework.一个强大、100% 兼容、支持 AndroidX、支持 Kotlin并且灵活的组件化框架
Stars: ✭ 2,434 (+1059.05%)
Mutual labels:  rxjava
Streamsaver.js
StreamSaver writes stream to the filesystem directly asynchronous
Stars: ✭ 2,784 (+1225.71%)
Mutual labels:  stream
Acgn Community
A community app for news,animation,music and novels developed material design style.
Stars: ✭ 193 (-8.1%)
Mutual labels:  rxjava
Xstream
An extremely intuitive, small, and fast functional reactive stream library for JavaScript
Stars: ✭ 2,259 (+975.71%)
Mutual labels:  stream
Byte Stream
A non-blocking stream abstraction for PHP based on Amp.
Stars: ✭ 208 (-0.95%)
Mutual labels:  stream
Copilot
A stream-based runtime-verification framework for generating hard real-time C code.
Stars: ✭ 204 (-2.86%)
Mutual labels:  stream

ixjava

codecov.io Maven Central

Iterable Extensions for Java, the dual of RxJava. Originally implemented in the Reactive4Java framework, now standalone; no dependencies on any reactive library.

The aim is to provide, lazily evaluated, pull-based datastream support with the same naming as in RxJava mainly for the pre-Java-8 world. The Stream API in Java 8 is not exactly the same thing because Streams can be only consumed once while Iterables can be consumed many times. Google Guava features a lot of Iterable operators, plus now they have the FluentIterable with similar setup but far less operators available.

This branch starts from scratch by reimplementing ix.Ix and all of its operators based on the +5 year experience with reactive and interactive dataflows.

Releases

Javadoc: https://akarnokd.github.com/ixjava/javadoc/index.html

gradle

dependencies {
    implementation 'com.github.akarnokd:ixjava:1.0.0'
}

Maven search:

http://search.maven.org

Examples

The main (and only) entry point is the class ix.Ix which features a bunch of static factory methods:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);

Ix<Integer> seq = Ix.from(list);

Now we can apply instance methods on the seq sequence, just like in RxJava. Not all operators are available though due to the synchronous-pull nature of IxJava.

seq
.map(v -> v + 1)
.filter(v -> v % 2 == 0)
.flatMap(v -> Ix.fromArray(v * 10, v * 100)))
.subscribe(System.out::println)
;

Since Ix implements Iterable, you can use the for-each loop to consume it:

for (Integer v : Ix.fromArray(5, 10).skip(1).concatWith(Ix.just(20))) {
    System.out.println("Value: " + v);
}

For further details on the possibilities, please study the javadoc of Ix.

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].