Monix: Version 2.0.0 Final Release

Monix is a library for composing asynchronous, event-based programs. Work on version 2.0 started since December last year, after version 1.0 was released.

Today marks the release of the 2.0.0 version. Here’s what happened since 1.0:

  1. the project went through a rename (from Monifu to Monix)
  2. the underlying protocol of Observable has been reviewed and changed quite significantly, making observable streams cancelable
  3. many of the Observable operators where refactored and improved
  4. the project was split into multiple sub-projects, such that users can pick and choose what they need
  5. the Task and Coeval types were introduced
  6. the project’s code coverage has been raised over 83%
  7. the project is in Typelevel’s Incubator, which for you it means that it plays nice with the other Typelevel projects
  8. it now integrates with Typelevel Cats and with Scalaz, which are THE standard libraries for doing functional programming and yes, Task, Coeval and Observable are provably Monads :-)
  9. we initiated a documentation website at, with an initial batch of useful articles, though there’s still a lot of ground left to cover for observables

Today Monix 2.0.0 is being released for Scala 2.10.6, 2.11.8 and 2.12.0-M5, Scala.js 0.6.11, Cats 0.7.0 and Scalaz 7.2.5.

You can hit the documentation, or experiment in ScalaFiddle and see Monix in your browser, or take a look at monix-sample, a client/server communication sample with both sides handled by Monix (see it running).

See the published API Documentation.

The full list of issues follows. Note that this list represents a historical trail, but doesn’t necessarily represent the released 2.0.0, as sometimes work that happened in an earlier issue was changed again in a later issue.