Sia RxJava 1.x sia 2.x sono progettati per essere Java 6+ e quindi non possiamo supportare Java 8 Stream in nessuna delle versioni. Si è deciso di mantenere il supporto della miriade di dispositivi e versioni Android che non verranno mai aggiornati a un runtime compatibile con Java 8. Se è necessario il supporto per Java 8, prendere in considerazione l'utilizzo di Reactor-Core da Pivotal.
La principale differenza tra i due è che 2.x si rivolge direttamente allo SPI Reactive-Streams e per questo è stato completamente riscritto da zero. Siamo attualmente in modalità di anteprima di sviluppo a cui è possibile accedere come descritto nello 2.x branch readme.
La completa riscrittura di 2.x ha migliorato notevolmente il consumo e le prestazioni della memoria; here is a benchmark che confronta varie versioni e librerie.
Sulla superficie dell'API, intendiamo continuare a supportare tutti gli operatori presenti in 1.x e probabilmente estendere entrambe le versioni con nuove per alcuni anni prima del supporto su estremità 1.x.
Poiché 2.x è una nuova architettura, molte librerie dipendenti (ad es. Retrofit) devono essere aggiornate; che probabilmente non accadrà prima della fine di questo agosto o potrebbe anche richiedere diversi mesi per recuperare. Here is the wiki page che contiene i punti salienti delle differenze.
direi che l'unica differenza è che usa le nuove [Java Streams API] (https: // docs.oracle.com/javase/8/docs/api/java/util/stream/package-summary.html) che è stato introdotto in Java 8. – Andreas
Quindi avere Java 8 qual è il punto? Differisce il flusso Java 8 e il flusso rxjava 2? – paul
Hai persino letto il secondo link che hai fornito? * "RxJava 1.x non implementa direttamente le API Reactive Streams" * e * "RxJava 2.x si rivolge direttamente alle API Reactive Stream direttamente" *. Mi sembra una grande differenza per me: cambiarlo dal non implementare direttamente l'API per implementare direttamente l'API. – Andreas