layout | title |
---|---|
page |
Monix |
Asynchronous Programming for Scala and Scala.js.
{% include github-stars.html %}
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
andCoeval
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.
{% include presentations.html %}
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 and tutorials:
API ScalaDoc:
- [Current]({{ site.apiCurrent }}) ([3.x]({{ site.api3x }}))
- [2.x]({{ site.api2x }})
- [1.x]({{ site.api1x }})
Relevant links to dependencies:
-
{% for post in site.posts limit: 5 %}
- {{ post.date | date_to_string }} » {{ post.title }} {% endfor %}
Here's a (non-exhaustive) list of companies that use Monix in production. Don't see yours? You can add it in a PR!
- Abacus
- Agoda
- commercetools
- Coya
- E.ON Connecting Energies
- eBay Inc.
- Eloquentix
- Hypefactors
- Iterators
- Sony Electronics
- Tinkoff
- Zalando
- Zendesk
Copyright (c) 2014-{{ site.time | date: '%Y' }} by The Monix Project Developers. Some rights reserved.
[See LICENSE]({% link LICENSE.md %})