We—the Reactive Streams Special Interest Group—are happy to announce the immediate availability of Reactive Streams version 1.0.2
.
When we released 1.0.1, we promised that after JDK9 had shipped, we'd release a compatibility/conversion library to seamlessly convert between the java.util.concurrent.Flow
and the org.reactivestreams
namespaces.
Not only have we done that in this release—we have also shipped a TCK for implementations of the java.util.concurrent.Flow
interfaces, so that they now can be verified without having to manually adapt/convert to the org.reactivestreams
interfaces.
As usual, 1.0.2
is binary, and semantically, compatible with the previous 1.0.x releases of Reactive Streams.
The artifacts, documentation and specifications are released under Creative Commons Zero into the Public Domain.
- Specification
- Java API Documentation Flow Adapters Java API Documentation
- TCK README
- Flow TCK README
-
the Reactive Streams interfaces
org.reactivestreams:reactive-streams:1.0.2
-
the Reactive Streams interfaces
org.reactivestreams:reactive-streams-flow-adapters:1.0.2
-
the Reactive Streams TCK
org.reactivestreams:reactive-streams-tck:1.0.2
-
the Reactive Streams Flow TCK
org.reactivestreams:reactive-streams-tck-flow:1.0.2
-
Example implementations—documented & verified—to draw inspiration from
org.reactivestreams:reactive-streams-examples:1.0.2
We'd like to thank everyone involved, all contributors and everyone who has given feedback during the development of this project.
- Specification
- Glossary term added for
Thread-safe
- No breaking/semantical changes
- Rule clarifications
- Glossary term added for
- Interfaces
- No changes
- Technology Compatibility Kit (TCK)
- Improved coverage
- Supports Publishers/Processors which do coordinated emission.
- Improved JavaDoc
- Improved coverage
- Examples
- New example RangePublisher
- Artifacts
- NEW! Flow adapters
- NEW! Flow TCK
- Java 9 Automatic-Module-Name added for all artifacts
1.0.1: The intent of this rule is that a Subscriber should not obstruct the progress of the Publisher from an execution point-of-view. In other words, the Subscriber should not starve the Publisher from CPU cycles.
1.0.2: The intent of this rule is that a Subscriber should not obstruct the progress of the Publisher from an execution point-of-view. In other words, the Subscriber should not starve the Publisher from receiving CPU cycles.
1.0.1: The intent of this rule is to highlight that there may be a delay between calling cancel
the Publisher seeing that.
1.0.2 The intent of this rule is to highlight that there may be a delay between calling cancel
and the Publisher observing that cancellation.
An adapter library has been created to convert org.reactivestreams
to java.util.concurrent.Flow
and vice versa. Read more about it here
<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams-flow-adapters</artifactId>
<version>1.0.2</version>
</dependency>
A TCK artifact has been created to allow for direct TCK verification of java.util.concurrent.Flow
implementations. Read more about it here
<dependency>
<groupId>org.reactivestreams</groupId>
<artifactId>reactive-streams-tck-flow</artifactId>
<version>1.0.2</version>
</dependency>
org.reactivestreams:reactive-streams
=>org.reactivestreams
org.reactivestreams:reactive-streams-examples
=>org.reactivestreams.examples
org.reactivestreams:reactive-streams-tck
=>org.reactivestreams.tck
org.reactivestreams:reactive-streams-flow-adapters
=>org.reactivestreams.flowadapters
org.reactivestreams:reactive-streams-tck-flow
=>org.reactivestreams.tckflow
- Added support for Publisher verification of Publishers who do coordinated emission, i.e. where elements only are emitted after all current Subscribers have signalled demand. (#284)
- The
SubscriberWhiteboxVerification
has been given more user friendly error messages in the case where the user forgets to callregisterOnSubscribe
. (#416)[reactive-streams/reactive-streams-jvm#416]
- Roland Kuhn (@rkuhn)
- Ben Christensen (@benjchristensen)
- Viktor Klang (@viktorklang)
- Stephane Maldini (@smaldini)
- Stanislav Savulchik (@savulchik)
- Konrad Malawski (@ktoso)
- Slim Ouertani (@ouertani)
- Martynas Mickevičius (@2m)
- Luke Daley (@ldaley)
- Colin Godsey (@colinrgodsey)
- David Moten (@davidmoten)
- Brian Topping (@briantopping)
- Rossen Stoyanchev (@rstoyanchev)
- Björn Hamels (@BjornHamels)
- Jake Wharton (@JakeWharton)
- Anthony Vanelverdinghe(@anthonyvdotbe)
- Kazuhiro Sera (@seratch)
- Dávid Karnok (@akarnokd)
- Evgeniy Getman (@egetman)
- Ángel Sanz (@angelsanz)
- (new) shenghaiyang (@shenghaiyang)
- (new) Kyle Thomson (@kiiadi)
Warm regards, the Reactive Streams Special Interest Group