Skip to content

Latest commit

 

History

History
120 lines (87 loc) · 3.99 KB

index.md

File metadata and controls

120 lines (87 loc) · 3.99 KB
layout title
page
Monix

Asynchronous Programming for Scala and Scala.js.

{% include github-stars.html %}

Overview

Monix is a high-performance Scala / Scala.js library for composing asynchronous, event-based programs.

A Typelevel project, Monix proudly exemplifies pure, typeful, functional programming in Scala, while making no compromise on performance.

Highlights:

  • exposes the kick-ass Observable, Iterant, Task and Coeval data types, along with all the support they need
  • modular, only use what you need
  • designed for true asynchronicity, running on both the JVM and Scala.js
  • excellent test coverage, code quality and API documentation as a primary project policy

The project started as a proper implementation of ReactiveX, with stronger functional programming influences and designed from the ground up for back-pressure and made to cleanly interact with Scala's standard library, compatible out-of-the-box with the Reactive Streams protocol. It then expanded to include abstractions for suspending side effects and for resource handling, being one of the parents and implementors of Cats Effect.

Presentations

{% include presentations.html %}

Download and Usage

The packages are published on Maven Central.

  • 3.x release (latest): {{ site.promoted.version3x }} ([download source archive]({{ site.github.repo }}/archive/v{{ site.promoted.version3x }}.zip))
  • 2.x release (older): {{ site.promoted.version2x }} ([download source archive]({{ site.github.repo }}/archive/v{{ site.promoted.version2x }}.zip))

In SBT for the latest 3.x release that integrates with Typelevel Cats out of the box (use the %%% for Scala.js):

libraryDependencies += "io.monix" %% "monix" % "{{ site.promoted.version3x }}"

Monix is modular by design, so you can have an à la carte experience, the project being divided in multiple sub-projects.

See Usage in SBT, along with the sub-modules graph, and don't miss the versioning scheme for binary-backwards compatibility guarantees.

Documentation

Documentation and tutorials:

API ScalaDoc:

  • [Current]({{ site.apiCurrent }}) ([3.x]({{ site.api3x }}))
  • [2.x]({{ site.api2x }})
  • [1.x]({{ site.api1x }})

Relevant links to dependencies:

Latest News

    {% for post in site.posts limit: 5 %}
  1. {{ post.date | date_to_string }} » {{ post.title }}
  2. {% endfor %}

Adopters

Here's a (non-exhaustive) list of companies that use Monix in production. Don't see yours? You can add it in a PR!

License

Copyright (c) 2014-{{ site.time | date: '%Y' }} by The Monix Project Developers. Some rights reserved.

[See LICENSE]({% link LICENSE.md %})