-
Notifications
You must be signed in to change notification settings - Fork 1
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
fpdart
/ ZIO
integration?
#2
Comments
Hi, I'm definitely open to the idea. Yes - the ZIO type encapsulates all the IO / Task classes from fpdart, as well as It is heavily inspired by effect-ts, but it doesn't have the fiber runtime as it would take a lot of engineering effort to maintain - and I don't have the time to do it. The scope of this project is quite a bit larger than fpdart - probably my only concern. The goal was to provide something that has all you need to build any kind of app. Including:
I think fpdart having a more focused scope is probably a good thing, I'm not sure if you would want all this in the project. |
I would keep to scope of fpdart to just the integration with Regarding immutable data types, I had a discussion with the creators of fast_immutable:collections a while ago. In practice the work would consist in mapping the current
You already did a great work with adding doc comments inside What do you think about this plan? Am I missing something? |
There is also all the primitives that come with ZIO as well, like ZIOQueue, Semaphore, Ref, Runtime, Layer. Were you thinking of merging those in as well? Some of them probably need a bit more usage to find the best API's. Do notation is already implemented here: https://github.com/tim-smart/elemental/blob/main/packages/elemental/lib/src/zio.dart#L184 Then there is also the flutter integration package, and the isolate package. I guess it is not quite clear where to draw the line here. With the effect ecosystem, we have seperated the FP primitives from the |
I would keep Flutter and isolate separate, possibly in another (future) package. I think I would prefer having fp primitives and At the same time, I am seeing many projects using I would like to introduce more people to all the ecosystems (primitives + Effects), which is a possible argument in favour of keeping them together. What do you prefer between having primitive+Effect all in one package vs 2 separate packages? What do you think would be the benefits of one solution over the other? |
Our company is slowly moving away from dart / flutter, so I will have likely have less or no time to maintain this package. So if you want to integrate it into fpdart that is fine, but you will need to be comfortable maintaining it and fixing any bugs. I'll be available to answer questions and help out here and there of course :) |
It works. I will be first releasing the Do notation in
Thanks @tim-smart 🙏 |
Hi @tim-smart
Sandro here (
fpdart
's author) 👋I took a look at you
ZIO
implementation and it looks really promising. I think there is some overlap withfpdart
's API (on effects,IO
,Task
,TaskEither
, etc.).This situation looks similar to
fp-ts
+effect-ts
:fp-ts
originally providingIO
,Task
,TaskEither
(just likefpdart
), whileeffect-ts
withEffect
(ZIO
).I think it could be interesting considering a consolidation of both our implementations (
fpdart
+ZIO
). I really like theZIO
approach:ZIO
instead ofIO
,Task
, etc.). This makes easier (possibly) to explain one conceptZIO
instead of many different classeseffect-ts
andZIO
(Scala), possibly sharing some documentation and resourcesWhat I would suggest is a possible integration of
ZIO
insidefpdart
(for a possible v1.0 release?).@tim-smart what do you think about this? Am I correct about the similarities between
ZIO
andfpdart
's effects? Is there something that theZIO
implementation is missing compared tofpdart
's effects?The text was updated successfully, but these errors were encountered: