reactive-streams / reactive-streams-dotnet

Reactive Streams for .NET
MIT No Attribution
198 stars 28 forks source link

Implementation of ReactiveStreams for RX/IX #24

Open SeanFarrow opened 8 years ago

SeanFarrow commented 8 years ago

Hi,

Does anyone know of an implementation of ReactiveStreams for RX/IX? Any help appreciated. Cheers Sean.

marcpiechura commented 8 years ago

@seanFarrow not that I know, RX.java has implemented the Reactive Streams interfaces but RX.net has not.

See also https://github.com/Reactive-Extensions/Rx.NET/issues/19

akarnokd commented 8 years ago

I have started Reactor-Core.NET a while back which does use RS.NET and is Rx style. It's incomplete as I have now other demanding responsibilities.

SeanFarrow commented 8 years ago

Should we look at doing something. I’m happy to take this on, as I’m using both RX and Akka.streams. If someone could create a repo, then I can work on this. Cheers Sean. From: David Karnok [mailto:notifications@github.com] Sent: 21 September 2016 08:20 To: reactive-streams/reactive-streams-dotnet reactive-streams-dotnet@noreply.github.com Cc: Sean Farrow sean.farrow@seanfarrow.co.uk; Mention mention@noreply.github.com Subject: Re: [reactive-streams/reactive-streams-dotnet] Implementation of ReactiveStreams for RX/IX (#24)

I have started Reactor-Core.NEThttps://github.com/reactor/reactor-core-dotnet a while back which does use RS.NET and is Rx style. It's incomplete as I have now other demanding responsibilities.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/reactive-streams/reactive-streams-dotnet/issues/24#issuecomment-248531317, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABY1fk62k-MUy1ucYuA0nqRBr863_e9gks5qsNqMgaJpZM4J_hGB.

akarnokd commented 8 years ago

I’m happy to take this on

What exactly would you like to do? RS requires a different architecture and I don't think you can change Rx.NET gradually to RS. (I have started porting RxJava even longer ago but that died off as well and uses 3rd generation architecture only.)

SeanFarrow commented 8 years ago

I’m looking to implement the ReactiveStreams interfaces for RX.net.

From: David Karnok [mailto:notifications@github.com] Sent: 21 September 2016 08:47 To: reactive-streams/reactive-streams-dotnet reactive-streams-dotnet@noreply.github.com Cc: Sean Farrow sean.farrow@seanfarrow.co.uk; Mention mention@noreply.github.com Subject: Re: [reactive-streams/reactive-streams-dotnet] Implementation of ReactiveStreams for RX/IX (#24)

I’m happy to take this on

What exactly would you like to do? RS requires a different architecture and I don't think you can change Rx.NET gradually to RS. (I have started porting RxJavahttps://github.com/akarnokd/RxAdvancedFlow even longer ago but that died off as well and uses 3rd generation architecture only.)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/reactive-streams/reactive-streams-dotnet/issues/24#issuecomment-248536672, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABY1foWaD4HLzDJigoooSFg_IHLEzuV0ks5qsODcgaJpZM4J_hGB.

smaldini commented 8 years ago

Why not contributing to Reactor Core .NET, we're looking for core contributors. We already are struggling with some semantic discussions between Rx and Reactor, however it seems audiences increasingly agree on an explicit separation between backpressure driven flows as implemented by Flux (/Mono) and non backpressure flows as implemented by Observable etc.

SeanFarrow commented 8 years ago

Hi,

Could you provide a link to the repo? Cheers Sean. From: Stephane Maldini [mailto:notifications@github.com] Sent: 21 September 2016 12:47 To: reactive-streams/reactive-streams-dotnet reactive-streams-dotnet@noreply.github.com Cc: Sean Farrow sean.farrow@seanfarrow.co.uk; Mention mention@noreply.github.com Subject: Re: [reactive-streams/reactive-streams-dotnet] Implementation of ReactiveStreams for RX/IX (#24)

Why not contributing to Reactor Core .NET, we're looking for core contributors. We already are struggling with some semantic discussions between Rx and Reactor, however it seems audiences increasingly agree on an explicit separation between backpressure driven flows as implemented by Flux (/Mono) and non backpressure flows as implemented by Observable etc.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/reactive-streams/reactive-streams-dotnet/issues/24#issuecomment-248587837, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABY1fqQyPCJPO7aW_x7thcSQAQMUPte4ks5qsRksgaJpZM4J_hGB.

smaldini commented 8 years ago

https://github.com/reactor/reactor-core-dotnet

SeanFarrow commented 8 years ago

Hi,

Thanks, what problems/discussions are you having currently? I’m trying to work out how I could contribute.

From: Stephane Maldini [mailto:notifications@github.com] Sent: 21 September 2016 12:49 To: reactive-streams/reactive-streams-dotnet reactive-streams-dotnet@noreply.github.com Cc: Sean Farrow sean.farrow@seanfarrow.co.uk; Mention mention@noreply.github.com Subject: Re: [reactive-streams/reactive-streams-dotnet] Implementation of ReactiveStreams for RX/IX (#24)

https://github.com/reactor/reactor-core-dotnet

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/reactive-streams/reactive-streams-dotnet/issues/24#issuecomment-248588382, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABY1fvMAGbskV4ayELIzhGzgHdPIOn8dks5qsRnJgaJpZM4J_hGB.

akarnokd commented 8 years ago

@SeanFarrow the lack of time. What we want and how we want it is already set, the utility/tool support is also there. We'd like to have these added:

https://github.com/reactor/reactor-core-dotnet/blob/master/Reactor.Core/Mono.cs#L67

~50% of the operators are missing.

https://github.com/reactor/reactor-core-dotnet/blob/master/Reactor.Core/Flux.cs#L2881

~10% of the operators are missing.

They can be adapted from https://github.com/reactor/reactor-core/blob/master/src/main/java/reactor/core/publisher/Flux.java and https://github.com/reactor/reactor-core/blob/master/src/main/java/reactor/core/publisher/Mono.java mostly in a straightforward manner.

SeanFarrow commented 8 years ago

Ok, let me take a look and see what I can do! Are there any examples of putting this together with rx?

From: David Karnok [mailto:notifications@github.com] Sent: 21 September 2016 13:20 To: reactive-streams/reactive-streams-dotnet reactive-streams-dotnet@noreply.github.com Cc: Sean Farrow sean.farrow@seanfarrow.co.uk; Mention mention@noreply.github.com Subject: Re: [reactive-streams/reactive-streams-dotnet] Implementation of ReactiveStreams for RX/IX (#24)

@SeanFarrowhttps://github.com/SeanFarrow the lack of time. What we want and how we want it is already set, the utility/tool support is also there. We'd like to have these added:

https://github.com/reactor/reactor-core-dotnet/blob/master/Reactor.Core/Mono.cs#L67

~50% of the operators are missing.

https://github.com/reactor/reactor-core-dotnet/blob/master/Reactor.Core/Flux.cs#L2881

~10% of the operators are missing.

They can be adapted from https://github.com/reactor/reactor-core/blob/master/src/main/java/reactor/core/publisher/Flux.java and https://github.com/reactor/reactor-core/blob/master/src/main/java/reactor/core/publisher/Mono.java mostly in a straightforward manner.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/reactive-streams/reactive-streams-dotnet/issues/24#issuecomment-248594588, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABY1fuqJHcxiNnKfrrn0s3Cskwkt1troks5qsSDcgaJpZM4J_hGB.

akarnokd commented 8 years ago

Given an IObservable we have a ToFlux extension method to get in and ToObservable to get out. We don't depend on Rx.NET but only on standard C# IObservable and IObserver.

SeanFarrow commented 8 years ago

Ok, and is it possible to convert to a ReactiveStreams publisher? That’s what I’m after!

From: David Karnok [mailto:notifications@github.com] Sent: 21 September 2016 14:13 To: reactive-streams/reactive-streams-dotnet reactive-streams-dotnet@noreply.github.com Cc: Sean Farrow sean.farrow@seanfarrow.co.uk; Mention mention@noreply.github.com Subject: Re: [reactive-streams/reactive-streams-dotnet] Implementation of ReactiveStreams for RX/IX (#24)

Given an IObservable we have a ToFlux extension method to get in and ToObservable to get out. We don't depend on Rx.NET but only on standard C# IObservable and IObserver.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/reactive-streams/reactive-streams-dotnet/issues/24#issuecomment-248608114, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABY1fpXiHvPoL3mFEwORGCTWSqxyI3yoks5qsS1tgaJpZM4J_hGB.

akarnokd commented 8 years ago

IFlux is an IPublisher and you can use Wrap to make an arbitrary IPublisher into an IFlux. We use this to avoid bloating the extension method space of IPublisher.