Do you like Caliban? Or maybe Shardcake? Enjoyed OSS contributions I’ve done over the years? Have I helped you on Discord?
I’ve just setup a GitHub Sponsor page so if you’d like to give a little back or encourage future contributions, head up to https://t.co/htxLQ6iHwH 🙏
@hepin1989 All backends in Proteus are based on grpc-java, but akka-grpc/pekko-grpc don't use it. They have their own grpc implementation on top of akka-http.
@matej_cerny The "safe" mode released in 3.8.3 and built on top of capture checking is very interesting though. It allows the compiler to guarantee you're not side-effecting in some parts of the code, quite nice with https://t.co/wlwMlrQinx or https://t.co/CmMrZc6Yhb
Reimplemented the zio/fs2 grpc backends in Proteus without depending on zio-grpc/fs2-grpc. That gave a nice performance boost to the zio one!
Ox is still the fastest but not by far. I'm hoping to use kyo-compat later if it gets support for streams.
https://t.co/Q5KQzba81D
Reimplemented the zio/fs2 grpc backends in Proteus without depending on zio-grpc/fs2-grpc. That gave a nice performance boost to the zio one!
Ox is still the fastest but not by far. I'm hoping to use kyo-compat later if it gets support for streams.
https://t.co/Q5KQzba81D
@jdegoes can you do something to remove the bounties on zio? look at all the PRs made in the last 24h, it's going to make the few remaining maintainers run away 😅 if we can't delete bounties, we could maybe close these issues and recreate them
@Krever01@adamwarski I think I’m gonna try to split the code to put as much as possible in a pure core then make a CE runtime on top with all the concurrency. Hopefully that layer won’t be too large so that other runtimes could be added later if needed.
Trying to build a new lib with support for ZIO/CE/Ox by abstracting over the effect type but it's proving difficult as I need fork, queues, resources, promises, etc. Abstracting over Ox is also tricky due to its eager nature (sometimes needs () => F[A]).
Should I: (1/2)
@fwbrasil@Krever01@adamwarski Yeah, so I feel I’m reinventing cats-effect by adding all these abstractions, and some don’t translate very well to Ox. Which is why I’m thinking of changing the approach completely and keep the core fixed to a single one.
@fwbrasil@Krever01@adamwarski But stuff like Scope, Queue, Promise, fork all require Kyo Sync/Async, no? If I make them abstract, it is similar in complexity to what I have currently.
@Krever01 this is similar to questions you had recently, I think you went for CE core.
@adamwarski you managed this quite incredibly in sttp/tapir, curious if you have a take on this.
- core using Java concurrency primitives + integrations on the edges (using unsafe run for effects)
- CE core + drop Ox (ZIO ok via interop)
- ZIO core + drop the other 2
- effect-free core and duplicate all effectful parts x3
- keep going despite the code complexity