Skip to content

v0.10.0

Compare
Choose a tag to compare
@fwbrasil fwbrasil released this 19 May 17:46
· 162 commits to main since this release
0f39c33

Kyo v0.10.0

This version introduces new major features and important fixes. Main highlights:

  1. kyo-tag: Kyo now has a new type Tag implementation that provides allocation-free sub-type checking. This new solution addresses safety issues with effect handling in generic scopes and its improved performance unblocks some important new features and fixes. A separate artifact kyo-tag is produced with no dependency on any other Kyo modules, enabling the use of the new Tag in isolation by other projects.
  2. kyo-zio: The initial implementation of the ZIOs effect is included in this new release. It provides a seamless integration between Kyo and ZIO via two methods: ZIOs.get transforms a ZIO computation into a Kyo one, and ZIOs.run transforms Kyo computations into ZIO. These methods can even be used in a nested fashion, enabling the gradual adoption of Kyo within a ZIO codebase. Feedback is appreciated!
  3. kyo-scheduler-zio: Provides a ZIO Runtime instance configured to replace ZExecutor with Kyo's adaptive scheduler. Initial benchmarking shows promising performance improvements. We're looking for early adopters of this new module. It's also a standalone module without a dependency on kyo-core.
  4. Java Futures integration: Kyo fibers now integrate with Java futures via Fibers.fromCompletionStageand Fibers.fromCompletionStageFiber. Thank you @calvinlfer!
  5. Flat Check Fixes: The Flat implicit is essential to guarantee the safe execution of Kyo computations. This mechanism was failing to engage properly in some scenarios; this version fixes those cases.
  6. Exception handling regression: A performance regression was detected by one of the EasyRacer scenarios. The regression was narrowed down to a change in Kyo's exception handling, which has been reverted in this release. The work on this regression also produced a number of other smaller optimizations.
  7. Scheduler Top: A new command-line utility to observe the execution of Kyo's scheduler is provided as a main class under kyo.scheduler.util.Top. The solution works via JMX beans and is designed to be used in production environments as well. Example output:
image

Special thanks to @hearnadam for all the contributions!

What's Changed

New Contributors

Full Changelog: v0.9.3...v0.10.0