RxCpp icon indicating copy to clipboard operation
RxCpp copied to clipboard

Future of RxCpp

Open Norman0406 opened this issue 6 years ago • 13 comments

Hello,

First of all, thanks for this great library. I have been using this much in the past months and have been really enjoying it.

However, I want to raise an important topic. In my company, we would like to use rxcpp in a productive environment. We need to write a library that all our developers need to use. But if I look at this repository, it seems to me there is no more development going on here. The latest release is more than a year old. There have been no bugfix releases since then, not to speak of new major versions. 33% of the issues are open (there are still issues from 2015 / 2016 that have not been fixed) and the latest commit on master was 5 months ago. If you compare development with the other reactive libraries, I get the impression rxcpp is dying. This is a shame since in my opinion there is no alternative in the world of C++. If we now decide to use this library, we need to prepare to do all library development and bugfixes ourselves, which we don't have the time for.

How do you see the future of RxCpp? Who is maintaining the library and doing active development?

Best regards, Norman

Norman0406 avatar Apr 05 '18 09:04 Norman0406

Plans to a new 2018 release?

promgamer avatar May 23 '18 14:05 promgamer

I created a new rxcpp release today on github. I hope that this will help those that were waiting for a new release.

kirkshoop avatar May 28 '18 04:05 kirkshoop

It's a bit unfortunate that the new release tag isn't following the previous naming pattern, i.e. being prefixed with a "v" (v4.0.0 vs. 4.1.0). We integrate RxCpp using Conan, which relies on this scheme. Is there any possibility to change that?

Norman0406 avatar Jun 14 '18 12:06 Norman0406

@Norman0406, good catch. I just pushed the v4.1.0 tag for the same commit to fix this.

kirkshoop avatar Jun 16 '18 19:06 kirkshoop

@kirkshoop Thanks a lot!

Norman0406 avatar Jun 17 '18 11:06 Norman0406

When will there be a new release? Thank you

vincent-hui avatar Dec 26 '19 14:12 vincent-hui

Hello.

I'm a big fan of ReactiveX, and have successfully used Rx.NET on many projects over the years. I'm currently working on a C++ project where reactive programming is a great fit. RxCpp seems like the obvious choice, but this thread about its future looks to be quite stale. I also see that the last commit was about 18 months ago.

It would be great to understand whether there are future plans for RxCpp, or if it's becoming an end-of-life project.

Thank you.

daniel-smith avatar Sep 19 '23 16:09 daniel-smith

@daniel-smith, I think that the new proposal for std::execution is a successor to RxCpp.
This one was co-created by Kirk Shoop, the author of this library.

BlueSolei avatar Sep 19 '23 16:09 BlueSolei

Target goal of std::execution is a bit different comparing to ReactiveX, so, it is a bit another beast. @daniel-smith, if it is applicable for you, you can check https://github.com/victimsnino/ReactivePlusPlus as alternative for RxCpp - it is re-implementation of RxCpp for C++20. At early stages of ReactivePlusPlus Kirk Shoop considered it as candidate for RxCpp v3, but we haven't communicated a lot since this... Anyway, you are welcome =)

victimsnino avatar Sep 19 '23 18:09 victimsnino

@victimsnino, can you please elaborate on the differences between RxCpp and std::execution? Maybe you can share a link that discusses it?

BlueSolei avatar Sep 19 '23 20:09 BlueSolei

@victimsnino, can you please elaborate on the differences between RxCpp and std::execution? Maybe you can share a link that discusses it?

No, i don't have any. In my understanding (which can be wrong) main difference is:

  • RxCpp is like std::ranges, but for values, distributed in time. It means, that we immediately can process obtained value at some time. Like if we have observable.map(...).filter(...).subsribe(...) it means: everytime we get new value, then we map it to something else, filter out if needed and then deliver to final subscriber. RxCpp has ability to schedule this parts of pipeline to different schedulers, but main goal is bunch of operators over async streams
  • std::execution is about scheduling of some job. You are schedule something, then write flow "how to process this scheduled data" and etc. Like "ok, schedule X on scheduler Y, then do this, this and this. Now i'm waiting". So, with std::execution is easy to make concurrent processing of some tasks, for example, quick sort - you can schedule sorting each part as separate job and then wait for final result.

So, if you have some bunch of tasks and you want to do it concurrently - then std::execution. If you have some source of data emitting some values at some time and you want to process it in some complex way combining with some other similar sources - it is RxCpp.

But i can be wrong. I believe, that it is possible to make RxCpp-like solution via std::execution and vice-versa: make std::execution-like solution via RxCpp.

victimsnino avatar Sep 20 '23 06:09 victimsnino

Thank you for the comments/suggestions @BlueSolei and @victimsnino. Good to know about these projects. Sadly, I don't have the luxury of using C++20 as of yet in the project I'm looking at. It's fair to assume that any RxCpp successor would target later standards though.

Still, it would be good to know if there are any concrete plans for the official ReactiveX implementation for C++. From what I'm hearing here, it seems like this is somewhat unknown.

daniel-smith avatar Sep 20 '23 15:09 daniel-smith

Still, it would be good to know if there are any concrete plans for the official ReactiveX implementation for C++. From what I'm hearing here, it seems like this is somewhat unknown.

I think, there is nothing like this... @kirkshoop haven't checked RxCpp for a long time, so, no one could say..

victimsnino avatar Sep 20 '23 16:09 victimsnino