Kyo 0.12.0 released!

  • Initial Scala Native support: The modules kyo-data, kyo-tag, and kyo-prelude are now cross-compiled to Scala Native 0.5.5.
  • Batch: A new effect that provides functionality similar to solutions like Haxl/Stitch/ZIO Query to batch operations. The effect can be safely composed with others without a separate monad!
  • kyo-prelude: The kyo-prelude module contains the new kernel of the library and a collection of IO-free effects. It’s a quite complete effect system with mutability only to handle stack safety, tracing, and preemption. Other than that, the entire module is pure without any side effects or IO suspensions, including the effect handling mechanism.
  • System: Provides access to system properties, environment variables, and OS-related information. A convenience Parse type class is provided to parse configurations.
  • Check: A new effect that provides a mechanism similar to assertions but with customizable behavior, allowing the collection of all failures (Check.runChunk), translation to the Abort effect (Check.runAbort), and discarding of any failures (Check.runDiscard).
  • Effect-TS-inspired pipe: The pending type now offers pipe methods that allow chaining multiple transformations into a single pipe call.
  • ScalaDocs: The majority of Kyo’s public APIs now offer ScalaDocs.
  • cats-effect integration: The new Cats effect provides integration with cats-effect’s IO, allowing conversion of computations between the libraries in both directions.
  • New Clock APIs: New convenience APIs to track deadlines and measure elapsed time.
  • Barrier: An asynchronous primitive similar to Latch to coordinate the rendezvous of multiple fibers.
  • Integration with directories-jvm: The Path companion object now provides methods to obtain common paths based on the directories-jvm library: Path.basePaths, Path.userPaths, Path.projectPaths.
3 Likes