funcool / potok

Reactive streams based state management toolkit for ClojureScript
http://funcool.github.io/potok/latest/
Mozilla Public License 2.0
46 stars 3 forks source link

Kefir based potok #4

Closed pepe closed 3 years ago

pepe commented 5 years ago

Hello. First of all, I love potok. It is by far the best system I have ever used for the application state management.

The only thing that bothers me a little is the RXJS dependency. As I moved to use shadow-cljs and npm version of the RXJS, it seems it makes my build quite big. It has to use rxjs-compat package, and I guess beicon is not optimising for this usage.

I believe beicon could be upgraded to use the latest version from the npm, but I am looking to some other reactive libraries (namely kefir), and think if it would be possible and feasible to create something based on the ideas from the potok, but using kefir. Even without the intermediate layer similar to beicon, where reactive primitives would be part of this "new" potok, so you have everything from one place.

I can understand, this is out of the scope for this project, and you are busy, but I still would love to hear, what you think about this kind of the approach.

Again thank you very much for all the work in your projects, they help make my job a lot easier. Cheers.

niwinz commented 5 years ago

Hi @pepe ! Nice to hear that!

About the beicon and rxjs. The problem here is that beicon uses a builitin version of rxjs and the latest release uses the 5.x branch of rxjs and includes a lot of unneded stuff (that is wrong). Right now im working on a beicon upgrade to the latest rxjs. That version will be also be bundled but the difference is that the bundled rxjs is google closure compiled and compatible so the dead code elimination should do much better work. ( The npm consuming stuff is not working fine at least for now, because i have cuerdas library that the latest version uses :npm-deps and many people have many problems with this version ).

About using different reactive primitives, I think thar is very feasible. Right now I don't know if it make sense think in something implemented inside potok, or just take the potok ideas and implement them in an other library... (potok is really really small)... If you have anything in mind, I'm open to hear your ideas.

pepe commented 5 years ago

Thank you, for the answer!

I am using the latest rxjs from the npm without any problems (with rxjs-compat thou), but it is just the small set of the features and cljs only. Which brings me to another angle, which just came to my mind, that I do not care about the JVM stuff at all, so only half of the beicon code is usable for me. On the other hand, I am also using rxhttp which have to be brought over.

I guess I will wait for the new version of the beicon and see how it works. If you think, there is anything I can help you with; I can try to do it.

Feel free to close this.