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
Async
operations. 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-data
module provides an alternative to Scala’sClassTag
that can express union, intersection, and literal types. TheSafeClassTag
implementation ensures materialized tags always properly represent their types without falling back tojava.lang.Object
for special types likeAnyVal
orNothing
. - Richer Abort effect: The
Abort
effect was update to use the newSafeClassTag
, enabling Abort.run with union types to handle multiple failure types at once. - Async masking: Introduction of
Async.mask
andfiber.mask
methods, similar touninterruptible
in other effect systems. These mask asynchronous computations from potential interruptions. - First-class support for unsafe APIs: Most primitives in
kyo-core
now provide protected unsafe access. This feature enables development of libraries on top of Kyo with better performance and facilitates integrations.Unsafe
APIs are available in companion objects, e.g.,Fiber.Unsafe
,LongAdder.Unsafe
. - Kyo-native Instant: A new
Instant
implementation inkyo-data
module improves integration with other Kyo APIs likeClock
andDuration
. - Optimized
Batch
effect: Implemented optimizations to lower the effect’s overhead, including improvements toChunk
,Loop
, andKyo.foreach*
methods.
Breaking Changes
- The
kyo-tag
module has been merged intokyo-data
. - The
Unit
suffix was renamed toDiscard
in someAsync
methods. Stream.Ack
considers0
max items asStop
.- The
when
method inkyo-combinators
now returns aMaybe
instead of a pendingAbort
.