If you had tried the integrations with other effect systems before, give it a try again and please report any issues!
New Features
- More flexible integration with ZIO and cats-effect: The integrations were previously implemented with custom effects, which had limitations with some
Asyncoperations. The new implementation is based directly onAsync, allowing unrestricted use of ZIO and cats-effect computations with Kyo’s async primitives. - Safe class tags: The
kyo-datamodule provides an alternative to Scala’sClassTagthat can express union, intersection, and literal types. TheSafeClassTagimplementation ensures materialized tags always properly represent their types without falling back tojava.lang.Objectfor special types likeAnyValorNothing. - Richer Abort effect: The
Aborteffect was update to use the newSafeClassTag, enabling Abort.run with union types to handle multiple failure types at once. - Async masking: Introduction of
Async.maskandfiber.maskmethods, similar touninterruptiblein other effect systems. These mask asynchronous computations from potential interruptions. - First-class support for unsafe APIs: Most primitives in
kyo-corenow provide protected unsafe access. This feature enables development of libraries on top of Kyo with better performance and facilitates integrations.UnsafeAPIs are available in companion objects, e.g.,Fiber.Unsafe,LongAdder.Unsafe. - Kyo-native Instant: A new
Instantimplementation inkyo-datamodule improves integration with other Kyo APIs likeClockandDuration. - Optimized
Batcheffect: Implemented optimizations to lower the effect’s overhead, including improvements toChunk,Loop, andKyo.foreach*methods.
Breaking Changes
- The
kyo-tagmodule has been merged intokyo-data. - The
Unitsuffix was renamed toDiscardin someAsyncmethods. Stream.Ackconsiders0max items asStop.- The
whenmethod inkyo-combinatorsnow returns aMaybeinstead of a pendingAbort.