github typelevel/cats-effect v3.1.1

latest releases: v3.6.1, v3.6.0, v3.6.0-RC2...
3 years ago

This is the fifth major release in the Cats Effect 3.x lineage. It is fully binary compatible with every 3.x release. It is fully source-compatible with every release in the 3.1.x lineage (with a small caveat that a leaked internal implementation detail was hidden from the public IORuntimeConfig API, we hope that this does not cause trouble for anyone).

The primary focus of this release are substantial performance improvements to the IO interop with the outside world (unsafeRun methods), thanks to the outstanding work of @RafalSumislawski, SyncIO API fixes, as well as some minor thread scheduling improvements in the face of blocking code running on the work stealing compute thread pool.

The long awaited migration guide by the tireless @kubukoz has been finally published. We cannot wait to hear your feedback.

Alongside these changes come the improvements to the project documentation and the tutorial on the website, including updated links to the new Typelevel Discord server.

Finally, this release brings Cats Effect 3 into the Scala 3.0.0 final world. We hope that you enjoy it.

User-Facing Pull Requests

  • #1913 – Add striped locks to the IORuntime custom fiber callback hashtable (@vasilmkd)
  • #1879 – The "Dealing with cancelation" section of the documentation has been change to not include Semaphores anymore (@lrodero)
  • #1687 – The great Cats Effect 3 Migration Guide (@kubukoz)
  • #1935 #1937 – Intricate performance tuning of the IORuntime custom fiber callback hashtable (@RafalSumislawski)
  • #1880, #1941 – Build and test Cats Effect 3 against the latest JDK versions (@vasilmkd)
  • #1943 – Hide leaked internal implementation detail from the public IORuntimeConfig API (@vasilmkd)
  • #1938 – Performance optimization for running externally submitted Runnable instances on the work stealing thread pool (@vasilmkd)
  • #1928 – Scheduling improvements when running blocking code on the work stealing thread pool (@vasilmkd)
  • #1947 – Fix SyncIO#>> to take a by-name parameter (@vasilmkd)
  • #1921 – Documentation of cancelation boundaries (@TimWSpence)
  • #1951, #1952 – Add a badge for the Typelevel Discord server (@paualarco)
  • #1967 – Scala 3.0.0 support (dropped support for Scala 3.0.0-RC2 and 3.0.0-RC3) (@larsrh)

Special thanks to each and every one of you! You are all amazing.

Don't miss a new cats-effect release

NewReleases is sending notifications on new releases.