Monix
Asynchronous Programming for Scala and Scala.js.
Overview
Monix is a high-performance Scala / Scala.js library for composing asynchronous, event-based programs.
It 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.
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
- really good test coverage, code quality and API documentation as a primary project policy
Presentations
Featured presentation:
Download and Usage
The packages are published on Maven Central.
- 3.x release (latest):
3.0.0-RC2
(download source archive) - 2.x release (older):
2.3.3
(download source archive)
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" % "3.0.0-RC2"
Or for the older 2.x
release:
libraryDependencies += "io.monix" %% "monix" % "2.3.3"
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 and Maven for more details.
Documentation
Documentation and tutorials:
API ScalaDoc:
Relevant links to dependencies:
Latest News
- Converting Scala's Future to Task (Video)
- Task's Bracket, Cats-Effect's Resource and Streaming (Video)
- Monix: Version 3.0.0-RC2
- Monix vs Cats-Effect
- Monix: Version 3.0.0-RC1
Acknowledgements
YourKit supports the Monix project with its
full-featured Java Profiler. YourKit, LLC is the creator
YourKit Java Profiler
and
YourKit .NET Profiler,
innovative and intelligent tools for profiling Java and .NET
applications.
Development of Monix has been initiated by
Eloquentix engineers, with
Monix being introduced at E.ON Connecting Energies, powering the next
generation energy grid solutions.
License
Copyright (c) 2014-2019 by The Monix Project Developers.
See the project homepage at: https://monix.io
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.