https://github.com/alex-shpak/rx-jersey
RxJava support for Jersey resources both server and client
https://github.com/alex-shpak/rx-jersey
dropwizard jersey reactivex rxjava rxjava2
Last synced: 5 months ago
JSON representation
RxJava support for Jersey resources both server and client
- Host: GitHub
- URL: https://github.com/alex-shpak/rx-jersey
- Owner: alex-shpak
- License: mit
- Archived: true
- Created: 2016-06-29T20:03:54.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2021-11-19T12:29:00.000Z (over 4 years ago)
- Last Synced: 2025-10-27T12:59:48.262Z (7 months ago)
- Topics: dropwizard, jersey, reactivex, rxjava, rxjava2
- Language: Java
- Homepage:
- Size: 1020 KB
- Stars: 42
- Watchers: 2
- Forks: 8
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - alex-shpak/rx-jersey - RxJava support for Jersey resources both server and client (<a name="Java"></a>Java)
README
## RxJersey - Reactive Jersey Feature
[](https://travis-ci.org/alex-shpak/rx-jersey)

[](https://jitpack.io/#alex-shpak/rx-jersey)
RxJersey is RxJava extension for [Jersey](https://jersey.java.net/) framework providing non-blocking Jax-RS server and client.
RxJersey target is to handle large amount requests in small static set of threads, which is highly suitable for microservice applications.
Library uses Jersey 2 async support with `@Suspended` and `AsyncResponse` under the hood.
Note that Jersey 2.26+ support is not released yet, you can obtain it from [JitPack](https://jitpack.io/#alex-shpak/rx-jersey/feature~jersey-2.27-SNAPSHOT)
### [Documentation](https://alex-shpak.github.io/rx-jersey)
## Features
- [x] RxJava Support
- [x] RxJava 2 Support
- [x] RxJava Proxy Client
- [x] Async Request Interceptors
- [x] Dropwizard bundle
## Roadmap
- [ ] Futures support
- [ ] Vert.x integration
- [ ] Improved proxy client
## Maven Artifacts
### Maven Central
```
compile "net.winterly.rxjersey:dropwizard:$rxJerseyVersion"
compile "net.winterly.rxjersey:rxjava-client:$rxJerseyVersion"
compile "net.winterly.rxjersey:rxjava-server:$rxJerseyVersion"
compile "net.winterly.rxjersey:rxjava2-client:$rxJerseyVersion"
compile "net.winterly.rxjersey:rxjava2-server:$rxJerseyVersion"
```
### JitPack
Most recent snapshot is available via [JitPack](https://jitpack.io/#alex-shpak/rx-jersey/)
```
compile "com.github.alex-shpak.rx-jersey:dropwizard:$rxJerseyVersion"
compile "com.github.alex-shpak.rx-jersey:rxjava-client:$rxJerseyVersion"
compile "com.github.alex-shpak.rx-jersey:rxjava-server:$rxJerseyVersion"
compile "com.github.alex-shpak.rx-jersey:rxjava2-client:$rxJerseyVersion"
compile "com.github.alex-shpak.rx-jersey:rxjava2-server:$rxJerseyVersion"
```
## Example
```java
@Path("/example/")
public class GithubResource {
@Remote("https://api.github.com/")
private GithubApi githubApi;
@GET
@Path("github")
public Single getRepository() {
return githubApi.getRepository("alex-shpak", "rx-jersey").toSingle();
}
}
@Path("/")
public interface GithubApi {
@GET
@Path("/repos/{user}/{repo}")
Observable getRepository(@PathParam("user") String username, @PathParam("repo") String repo);
}
```
## Licence
[MIT](LICENSE)