Skip to content

Releases: monix/monix-bio

v1.2.0

06 Jun 14:51
Compare
Choose a tag to compare

Highlights

Scala 3 Support is here!

Relevant updates

  • #242 [Bugfix] ClassCastException when IO is in Termination state with runSyncUnsafe execution
  • #204 Add IO.fromFutureEither
  • Drop ScalaJS 0.6
  • Release on Scala 3.0.0

Published on ScalaJS 1.x, Scala 2.12, 2.13, and 3.0.0.

Acknowledgements

Big thanks to @Avasil @paualarco @Hiosdra @eliav-lavi for contributions!

v1.1.0

15 Nov 17:09
v1.1.0
a97c755
Compare
Choose a tag to compare

Highlights

Better Stack Traces

This release includes a highly requested feature of better stack traces for IO!
Big thanks to @RaasAhsan and @djspiewak for providing the original implementation that we have ported.

They are enabled by default, but it is configurable.
Refer to Stack Traces section for more details.

We have measured about 10-30% performance hit in CACHED mode (the default) in microbenchmarks.
If you have any performance tests, we would greatly appreciate any reports!
If the hit is too big, you can disable the stack traces with -Dmonix.bio.stackTracingMode=none.

Better IO => Future interop when using Local

Running IO isolates Local, which was not available in the Future, resulting in runToFuture.
This release enables it and unblocks compelling use cases, such as reading proper request context in Akka HTTP Directive.
We've created an AkkaHTTP Example that demonstrates it.

More information about Local can be found in the new Local documentation.

Relevant updates

  • #172 add IO.when, unless, raiseWhen, raiseUnless
  • #177 & #182 add tapEval
  • #178 Add as, none, some, left, right
  • #180 Add absorb, absorbWith
  • #184 Handle ContextSwitch in TaskRunSyncUnsafe properly
  • #191 Add *> <*
  • #190 Asynchronous Stack Traces
  • #199 Local propagation in runToFuture

Acknowledgements

Big thanks to @Avasil @alexandru @ptr97 @VladPodilnyk @GKhotyan @mbszarek @WesselVS for contributions!

v1.0.0

20 Jul 19:51
Compare
Choose a tag to compare

First long-term stable release.

Binary compatibility will be kept in the entire 1.x.x line.

Big thanks to all contributors and people showing interest in the library!

v0.1.1 (May 17, 2020)

17 May 17:58
v0.1.1
Compare
Choose a tag to compare

The release is binary compatible with 0.1.0 and includes missing methods from Task API.

Acknowledgements

Big thanks to @Executioner1939 , @pjurczenko and @CucumisSativus for contributions!

v0.1.0 (March 9, 2020)

08 Mar 23:09
0.1.0
Compare
Choose a tag to compare

The first stable release of Monix BIO.

It covers almost entire monix.eval.Task API and introduces extra type parameter for errors (like a built-in Task[Either[E, A]] and relevant combinators.

Missing Task combinators are:

final def flatMapLoop[E1 >: E, S](seed: S)(f: (A, S, S => BIO[E1, S]) => BIO[E1, S]): BIO[E1, S] =
  this.flatMap { a =>
    f(a, seed, flatMapLoop[E1, S](_)(f))
  }

0.1.1 version will be released as soon as these are added.

The project will maintain binary compatibility in 0.1.x line. It is suitable for general usage but I would not recommend building a lot of libraries on it just yet unless you are fine with upgrade in few months.

Not all scaladocs are updated for BIO and currently there is no other documentation on the website. It will be my priority in April. Until then I consider the project as something for more advanced user who are already familiar with idea of IO Monad and error type exposed in the type parameter.

Acknowledgements

I'm really grateful to all the contributors (in the order of commits):

As well as all the people who encouraged me and showed interest in the project 😊