À propos du projet

RxJava est une implémentation Java VM des Reactive Extensions : une bibliothèque pour composer des programmes asynchrones et basés sur des événements en utilisant des séquences observables. Elle étend le motif observateur pour supporter des séquences de données et d'événements, ajoutant des opérateurs permettant aux développeurs de composer des séquences de manière déclarative tout en抽象ant les préoccupations de bas niveau liées au threading, à la synchronisation, à la sécurité des threads et aux structures de données concurrentes. Le README documente la version 4.x, décrite comme une implémentation Java native ne nécessitant aucune bibliothèque d'exécution tierce, avec prise en charge de JPMS et OSGi, une implémentation basée sur java.util.concurrent.Flow, un support des Virtual Threads, et un nouveau type Streamable construit autour du blocage virtuel. Il note également l'utilisation du Reactive Streams Test Compatibility Kit, l'utilisation de l'API Java Cleaner pour la détection des fuites de ressources, et que le support de RxJava 3.x sera réduit après la publication de la version 4.x. La prise en main couvre l'ajout de la dépendance (io.reactivex.rxjava4:rxjava) et un exemple Hello World utilisant Flowable.just(...).subscribe(...). Les types de base incluent Flowable (0..N avec backpressure), Observable (0..N sans backpressure), Single (exactement un élément ou une erreur), Completable (complétion ou erreur uniquement), Maybe (pas d'élément, un élément ou une erreur), et Streamable (blocage virtuel avec backpressure native). Le README explique la terminologie telle que upstream/downstream, émissions, backpressure, temps d'assemblage, temps d'abonnement et runtime, avec des échantillons de code pour le calcul en arrière-plan, les schedulers, la concurrence au sein d'un flux, le traitement parallèle, les sous-flux dépendants, les continuations, et les conversions de type entre types réactifs. Il documente également les conventions de nommage des opérateurs dues aux mots-clés Java, à l'effacement de type et aux ambiguïtés de type.