-
Notifications
You must be signed in to change notification settings - Fork 1
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Project status #1
Comments
@antonkatz, Hello. You're welcome to try. It's an experimental package of mine, but it is heavily tested and I'm currently using it in a couple of private repos. It's pretty stable and I have had zero issues with it for a long time. I'm interested in developing fluh, so, in case you're in, I'm here for discussion and help. |
@StreetStrider Awesome :) I've been working with rxjs for a little while now, and I've run into issues using it the way I want to, which is simply using it as a dependency graph for event-driven computations. I've just taken a look at |
I guess with the first question about what happens with Many, I'm wondering if hooking up fluh to a websocket is a good idea or a bad idea. |
@antonkatz I'm hooking it to a websocket in that manner: websocket.on(event_name, bud.emit) My real code is: realtime.stream = (channel) =>
{
return Bud()
.thru(tap(bud => realtime.on(channel, bud.emit)))
} In that case Many is not used, it is just a series of different events which triggers series of bud emits (very common situation for fluh).
All emits (and event graph in general) is resolved synchronously, unless you explicitly use some high-order things, which introduces async. In most of the cases you can be sure event graph is in consistent state after every single emit. In general, first all graph is settled, then, all effects is fired (as described here). |
My usual workflow, including websocket is: realtime.stream('event_name') → bud.map & filter → bud.on(post to dom) I use Booth for websocket, then fluh, then blade for precise DOM transformations. It is for sure, Booth can be replaced with socket.io, and blade can be replaced with morphdom, virtual-dom, snabbdom or React. |
You have a collection of very awesome libraries. I might give Booth a try too! |
@antonkatz OK, I will stanby for updates from you. For now the only documentation for fluh is readme and changelog. I believe, you may need some clarifications on fluh operators, feel free to file a ticket if such. Good luck! |
I guess my final question is how is the performance? Have you benchmarked it against any other libraries? |
@antonkatz I've benchmarked it against flyd. It was at 1/1 ratio with flyd until I had implemented graph caching, which gives excellent results on static graphs. Right now it's x2 times faster than flyd.
This result is totally doable in flyd (I believe flyd still can beat fluh, because fluh is slightly more abstract, where flyd is a single JS file with pretty plain cycles), but we never spoke with Simon on that, since he hasn't been working on flyd for a year and a half. Here's my comment on perf compared to non-event graph. |
Awesome. I'm sold! No more questions. 🥇 |
@antonkatz, I've prepped release |
This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
Hello! Thank you for making an awesome library.
I see that there are some recent updates, and it's more active that flyd. I'm thinking of trying this out for a experimental production project, would you recommend me against that?
The text was updated successfully, but these errors were encountered: