L’API reactive-streams vient d'être publiée dans sa première version 1.0, après environ une année depuis la naissance de l’initiative. Durant cette période, l’API a subi plusieurs changements radicaux tels que :
- Généralisation du langage Java comme langage de base
- Changement de l’outil de build de SBT à Gradle
- Unification des packages "org.reactivestreams.api" et "org.reactivestreams.spi" sous le package commun "org.reactivestreams"
- Changement syntaxique de la définition des règles de la spécification : pour être plus aligné avec les spécifications JDK
On rappelle que l'amorçage de cette API a émergé suite aux mouvements réactifs avec l'idée de base consistant à proposer une API standard pour les traitements des flux de données de manière asynchrone et non bloquante.
Plusieurs acteurs ont supporté cette initiative à l’instar d’Oracle, Pivotal, Netflix, RedHat, Twitter et Typesafe évidemment. De même, des frameworks sont déjà compatibles reactive-streams, tels que Akka, ReactiveX, Reactor et Vert.x. Playframework, à son tour, propose les reactive-streams en mode expérimental. D'après l'annonce, l’API n’est pas concurrente aux fameux iteratees, bien qu’à long terme, ces derniers seront remplacés par les reactive-streams pour faire le standard des manipulations IO de base.
Outre les frameworks événementiels, Slick le framework fonctionnel de persistance ou FRM de TypeSafe supporte à son tour l'API reactive-streams pour streamer les résultats des requêtes SQL dans sa toute dernière version 3. Dans l'univers NoSQL, on cite que Mongodb propose désormais un driver qui implémente l'API reactive-streams, permettant d'interagir avec les autres frameworks supportant cette API.
Il faut noter également qu’il est envisageable d’introduire cette api dans la prochaine version du JDK9 sous le package "java.util.concurrent", avec la possibilité d’avoir un jar compact "reactive-streams-jdk9plus-compat-1.0.0.final.jar".