Back to directory
monix avatar

monix-bio

Asynchronous data type with typed errors.. Read more below about its uses, features, and usage.

Clone repository

git clone https://github.com/monix/monix-bio.git

81

Stars

24

Forks

5

Watchers

NOASSERTION

License

Monix-BIO

Maven Central Discord Join the chat at https://gitter.im/monix/monix-bio Snapshot

Asynchronous data type with typed errors. An enhanced version of monix.eval.Task.

Visit Documentation Website

The latest version

The latest stable version, compatible with Monix 3.x, Cats 2.x and Cats-Effect 2.x:

libraryDependencies += "io.monix" %% "monix-bio" % "1.2.0"

Published for ScalaJS1.x, Scala 2.12, 2.13, and 3.0.0.

Roadmap

  • Complete documentation (see #133 for current progress)
  • reactive module to use monix.reactive.Observable with monix.bio.IO
  • built-in interop with monix.eval.Task without any imports
  • (?) UIO-friendy builders for cats.effect.concurrent and monix-catnap
  • (?) Coeval with typed errors

Contributing

I will really appreciate feedback, bugs and complaints about the project.

If you'd like to contribute code then look for issues tagged with good first issue or just ask me on gitter and I should be able to find something regardless of your level of expertise. :)

I'm happy to mentor anyone interested in contributing.

Credits

Most of the code comes from Monix which was customized to include support for error type parameter directly in the internals.

The idea of a second type parameter comes from ZIO. Its implementation and API for error handling with two error channels served as an inspiration to the entire idea and some of the solutions. A lot of the benchmarks also come from their repository.

Cats-bio has been extremely useful at the beginning because of many similarities between monix.eval.Task and cats.effect.IO internals.

Releases

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 Releas...

Nov 15, 2020

Download .zip

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...

Jul 20, 2020

Download .zip

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!

May 17, 2020

v0.1.1 (May 17, 2020)

Download .zip

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!

Mar 8, 2020

v0.1.0 (March 9, 2020)

Download .zip

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...