This is the last release before PR #121 gets merged.
The highlight of the release is the provided cats.Parallel type-class instance for IO
. This makes it now possible to process IO
values in parallel, out of the box:
Simple sample:
import cats.implicits._
val name: IO[String] = getName(id)
val age: IO[Int] = getAge(id)
// Assuming `name` and `age` are asynchronous IOs, they'll
// get processed in parallel ...
(name, age).parMapN { (name, age) => Person(name, age) }
Changes:
- PR #115 (issue #83):
cats.Parallel[IO, IO.Par]
implementation - PR #110 (issue #94): add
SemigroupK
instance forIO
- PR #111 (issue #108): re-throw exception in IO.async after callback was called once
- PR #114: switch traits to abstract classes for better bincompat
- PR #119 (issue #118): change check in SyncLaws to allow streaming types
- PR #125: fixes omission in
AsyncTests