Monix Bio Versions Save

Asynchronous data type with typed errors.

v1.2.0

2 years ago

Highlights

Scala 3 Support is here!

Relevant updates

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

3 years ago

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

Acknowledgements

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

v1.0.0

3 years ago

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

4 years ago

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!

0.1.0

4 years ago

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):

  • Piotr Gawryś ( @Avasil )
  • Paweł Jurczenko ( @pjurczenko )
  • Allan Timothy Leong (@allantl )
  • MrKustra94 ( @MrKustra94 )
  • SvenvDam ( @SvenvDam )
  • Paweł Kiersznowski (@pk044 )
  • Aleksandar Skrbic ( @aleksandarskrbic )
  • xplosunn ( @xplosunn)
  • Bartłomiej Szwej ( @bszwej )
  • Kirill Shelopugin ( @Z1kkurat )

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