Reactive Extension (Rx) Adaptor for Netty
Java Other
Latest commit be12144 Nov 16, 2016 @NiteshKant NiteshKant `RequestN` reduces with completed subscribers.
#### Problem

Re-calculation of max `requestN` per subscriber did not take into account removed subscribers correctly. This causes the `requestN` value to decrease over time when subscribers are completed.

#### Modification

- Modified `recalculateMaxPerSubscriber` to take old and new subscriber count instead of trying to determine the correct value from the current subscriber queue size.
- `subscribers.remove()` does not happen on unsubscribe but only from the task that recalculates the max `requestN` values. This also coalesces multiple removes into a single task run.

#### Result

Consistent `requestN` values with new subscribes and completions.

README.md

Branch Status

This is the current development branch for RxNetty and it is not stable, if you are looking for a stable release, you should use the latest 0.4.x artifacts.

Motivations

Motivations and detailed status of the breaking changes in 0.5.x can be found here

RxNetty

Download Average time to resolve an issue Percentage of issues still open

Reactive Extension (Rx) Adaptor for Netty

Getting Started

The best place to start exploring this library is to look at the examples for some common usecases addressed by RxNetty.

A very simple HTTP server example can be found here and the corresponding HTTP client is here

Binaries

Binaries and dependency information for Maven, Ivy, Gradle and others can be found at http://search.maven.org.

Example for Maven:

<dependency>
    <groupId>io.reactivex</groupId>
    <artifactId>rxnetty-http</artifactId>
    <version>x.y.z</version>
</dependency>

and for Ivy:

<dependency org="io.reactivex" name="rxnetty-http" rev="x.y.z" />

and for Gradle:

compile 'io.reactivex:rxnetty-http:x.y.z'
Unintentional release artifacts

There are two artifacts in maven central 0.5.0 and 0.5.1 which were unintentionally released from 0.4.x branch. Do not use them. More details here

Build

To build:

$ git clone https://github.com/ReactiveX/RxNetty.git -b 0.5.x
$ cd RxNetty/
$ ./gradlew build

Bugs and Feedback

For bugs, questions and discussions please use the Github Issues.

LICENSE

Copyright 2014 Netflix, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.