reactor / reactor-core

Non-Blocking Reactive Foundation for the JVM
http://projectreactor.io
Apache License 2.0
4.95k stars 1.2k forks source link

Document support for Android #796

Closed yschimke closed 7 years ago

yschimke commented 7 years ago

Follow on from https://github.com/reactor/reactor-core/issues/98 Relates to this issue https://github.com/rsocket/rsocket-java/issues/375

My own testing shows Reactor works nicely in SDK 26 (Android O Developer Preview). But fails on SDK 24 due to usage of java.time.

This task is just a request to document whether you support Android, under what conditions. e.g. one of:

yschimke commented 7 years ago

To be clear, without understanding the stated position of reactor-core, I can't do the same for a project that depends on it.

smaldini commented 7 years ago

Excellent point @yschimke we need to precise Android support. We took the decision in 3.1 to can the non java.time params so that exclusively keeps 3.1 and onwards compatible with SDK 26 (unless you don't use time stuff). We have improved some support usually appreciated by android devs like Disposable.Composite and we would just need to port the Android loop scheduler. On a related note we are also re-assembling reactor-netty API to offer more meaningful support for things like rsocket (or socket protocol over network), possibly via reactor-ipc. That would be great if you are around in SF to meet and discuss all those challenges!

yschimke commented 7 years ago

@smaldini I'll be in SF in October I think, but mostly I am in London.

simonbasle commented 7 years ago

just to clarify, this will probably change in the future as we are getting Android SDK 26 on our radar but as of now, official stance is:

yschimke commented 7 years ago

Even just stating that including the last part would be great.

simonbasle commented 7 years ago

@yschimke in your opinion, what is the best place to put this statement?

yschimke commented 7 years ago

https://github.com/reactor/reactor-core ? Maybe a minor paragraph under "Reactor 3 requires Java 8 or + to run."

For my own project all I did was https://github.com/rsocket/rsocket-java

Requirements

Java 8 - heavy dependence on Java 8 functional APIs and java.time, also on Reactor Android O - https://github.com/rsocket/rsocket-demo-android-java8

smaldini commented 7 years ago

@yschimke something we can have in best effort for 3.1+ if you find interest there a core support for android scheduler if we detect the android jvm as well (i.e. superseeding Schedulers factory like RxAndroid).