RxJava 是一个ReactiveX 在JVM平台上的实现:通过使用可观察序列来组合异步和基于事件的程序的库
关于更多的信息关于ReactiveX 请看介绍ReactiveX
RxJava是轻量级的
RxJava尝试变的非常轻量级。它被实现为仅仅关注于可观测的抽象的、有关系的高阶函数
的独立jar包。
RxJava是一个多语言的实现
RxJava支持Java6和在它之上的版本和基于JVM的语言例如Groovy,Clojure,jRuby,Kotlin和Scala.
RxJava意味着多语言环境不仅仅是Java/Scala,他被设计为尊重每种基于JVM的习惯用语。
RxJava的库
如下的一些外部库可与RxJava协同工作:
- Hystrix latency and fault tolerance bulkheading library.
- Camel RX provides an easy way to reuse any of the Apache Camel components, protocols, transports and data formats with the RxJava API
- rxjava-http-tail allows you to follow logs over HTTP, like
tail -f
- mod-rxvertx - Extension for VertX that provides support for Reactive Extensions (RX) using the RxJava library
- rxjava-jdbc - use RxJava with jdbc connections to stream ResultSets and do functional composition of statements
- rtree - immutable in-memory R-tree and R*-tree with RxJava api including backpressure
准备开始
获取二进制文件
你可以找到二进制文件和依赖信息通过Maven,Ivy,Gradle,SBT等等在 http://search.maven.org.
Maven:
io.reactivex.rxjava2
rxjava
2.2.0
Gradle:
compile 'io.reactivex.rxjava2:rxjava:2.2.0'
如果你需要下载Jar包而不是通过编译系统,创建一个如下的带版本的Pom文件:
4.0.0
io.reactivex.rxjava2
rxjava
2.2.0
RxJava
Reactive Extensions for Java
https://github.com/ReactiveX/RxJava
io.reactivex.rxjava2
rxjava
2.2.0
然后执行:
$ mvn -f download-rxjava-pom.xml dependency:copy-dependencies
这个命令下载rxjava-*.jar和它的依赖包 到 ./target/dependency/目录下。
你需要java6或者更高版本。
编译:
拉取和编译RxJava源码,执行如下命令:
$ git clone [email protected]:ReactiveX/RxJava.git
$ cd RxJava/
$ ./gradlew build
执行clean 编译,执行如下命令:
$ ./gradlew clean build
编译过程如下:
$ ./gradlew build
:rxjava:compileJava
:rxjava:processResources UP-TO-DATE
:rxjava:classes
:rxjava:jar
:rxjava:sourcesJar
:rxjava:signArchives SKIPPED
:rxjava:assemble
:rxjava:licenseMain UP-TO-DATE
:rxjava:licenseTest UP-TO-DATE
:rxjava:compileTestJava
:rxjava:processTestResources UP-TO-DATE
:rxjava:testClasses
:rxjava:test
:rxjava:check
:rxjava:build
BUILD SUCCESSFUL
Total time: 30.758 secs
在一个clean 编译过程中,你将会看到单元测试的执行。如下:
> Building > :rxjava:test > 91 tests completed