RxJersey

RxJava extension for Jersey and Dropwizard

License

License

Categories

Categories

Net Jersey Program Interface REST Frameworks
GroupId

GroupId

net.winterly.rxjersey
ArtifactId

ArtifactId

example
Last Version

Last Version

0.11.0
Release Date

Release Date

Type

Type

jar
Description

Description

RxJersey
RxJava extension for Jersey and Dropwizard
Project URL

Project URL

https://github.com/alex-shpak/rx-jersey
Source Code Management

Source Code Management

https://github.com/alex-shpak/rx-jersey

Download example

How to add to project

<!-- https://jarcasting.com/artifacts/net.winterly.rxjersey/example/ -->
<dependency>
    <groupId>net.winterly.rxjersey</groupId>
    <artifactId>example</artifactId>
    <version>0.11.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.winterly.rxjersey/example/
implementation 'net.winterly.rxjersey:example:0.11.0'
// https://jarcasting.com/artifacts/net.winterly.rxjersey/example/
implementation ("net.winterly.rxjersey:example:0.11.0")
'net.winterly.rxjersey:example:jar:0.11.0'
<dependency org="net.winterly.rxjersey" name="example" rev="0.11.0">
  <artifact name="example" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.winterly.rxjersey', module='example', version='0.11.0')
)
libraryDependencies += "net.winterly.rxjersey" % "example" % "0.11.0"
[net.winterly.rxjersey/example "0.11.0"]

Dependencies

compile (2)

Group / Artifact Type Version
io.dropwizard : dropwizard-client jar 1.3.7
net.winterly.rxjersey : dropwizard jar 0.11.0

Project Modules

There are no modules declared in this project.

RxJersey - Reactive Jersey Feature

Build Status Maven Central JitPack

RxJersey is RxJava extension for Jersey 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

Documentation

Features

  • RxJava Support
  • RxJava 2 Support
  • RxJava Proxy Client
  • Async Request Interceptors
  • 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

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

@Path("/example/")
public class GithubResource {

    @Remote("https://api.github.com/")
    private GithubApi githubApi;

    @GET
    @Path("github")
    public Single<GithubRepository> getRepository() {
        return githubApi.getRepository("alex-shpak", "rx-jersey").toSingle();
    }

}

@Path("/")
public interface GithubApi {

    @GET
    @Path("/repos/{user}/{repo}")
    Observable<GithubRepository> getRepository(@PathParam("user") String username, @PathParam("repo") String repo);
}

Licence

MIT

Versions

Version
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0