Monix: Version 2.1.x

Greetings,

Version 2.1.1 is out now, while version 2.1.0 was out on Nov 9. The official announcement was then postponed because we waited to see if bug reports are going to happen. Today version 2.1.1 was released, fixing such a problem.

To use the new version, include this in your build.sbt (and use %%% for Scala.js):

libraryDependencies += "io.monix" %% "monix" % "2.1.1"

The new version supports:

  • Scala 2.10, 2.11 and 2.12
  • Scala.js 0.6.x
  • Cats 0.8.x
  • Scalaz 7.2.x
  • Java 6, 7, 8 and 9
  • Android, at least since 2.x

The theme of the 2.1 release has been performance optimizations, in some cases quite massive, improving Task and parallelizing work by means of the new Observable.mapAsync or by TaskSemaphore.

List of changes for 2.1.0:

  • The GitHub organization was renamed to monix, so we are now github.com/monix because its owner, Lucas Brown, has kindly donated it to us, thanks a lot Lucas
  • Issue #226: Add Task.Options with an autoCancelableRunLoops property
  • Issue #227: Add executeWithFork, executeWithModel and asyncBoundary operators on Task
  • Issue #232: Async Task instances should execute with TrampolinedRunnable everywhere we can
  • Issue #236: Task and Coeval need foreach and foreachL
  • Issue #237: Introduce monix.execution.misc.ThreadLocal
  • Issue #238: Add Coeval.Attempt.get
  • Issue #239:
    Task.flatMap loops should not be auto-cancelable by default
  • Issue #240: Change type-class encoding, provide optimal Observable.tailRecM, upgrade Cats to 0.8.x
  • Issue #251: Provide instances for Scalaz Catchable
  • Issue #241: TestScheduler’s exposed state should return the State and not Atomic[State]
  • Issue #243: Add the TrampolineScheduler for the JVM, in addition to Javascript
  • Issue #256: Refine extension methods on Scheduler
  • Issue #264: AtomicNumber classes need getAndAdd intrinsic
  • Issue #262: Add TaskSemaphore and AsyncSemaphore
  • Issue #263: Add Observable.mapTask and Observable.mapFuture
  • Issue #205: Add Observable.mapAsync for parallel mapping over Observable
  • Issue #261: Optimize the performance of the Observable buffers
  • Issue #254 Rename Observable.runWith to Observable.consumeWith
  • Issue #242: Add Scheduler.cached builder for the JVM

The issue being addressed in 2.1.1:

  • Bug #269: Observable throws NoSuchFieldException (via jctools) on Android
  • Issue #270: Add support for platforms that do not have sun.misc.Unsafe (with the corresponding PR #272)

Enjoy!