Scala libraries

Compatible Scala libraries

Many Scala libraries have been updated to be compatible with Scala.js. To quickly start using one of these libraries, just click on the dependency clipboard button to get the relevant SBT dependency definition.

Scala.js 1.x: At the moment, the list below is maintained for Scala.js 0.6.x only. Consult the readmes of relevant projects to see whether they support milestones of Scala.js 1.x.

JDK extensions

Name Description Dependency
scalajs-java-time Port of the java.time API of JDK8 for Scala.js
scalajs-jsjoda-as-java-time Implementation of JDK8’s java.time API in Scala.js by wrapping js-joda classes
scala-java-time Platform-independent implementation of java.time
scala-java-locales Implementation of JDK8’s java.util.Locale API and parts of java.text API
scalajs-java-logging Port of the java.util.logging API of JDK 8 for Scala.js

Functional programming

Scalaz Library for functional programming.
Each A macro library that converts native imperative syntax to scalaz’s monadic expressions.
future.scala Stack-safe asynchronous programming in pure functional flavor.
tryt.scala Monad transformers for exception handling.
RAII.scala A collection of utilities to manage native resources in Scalaz.
Shapeless Generic programming for Scala.
Cats Lightweight, modular, and extensible library for functional programming.
Monocle Optics library strongly inspired by Haskell Lens.
Quicklens Modify deeply nested fields in case classes.

Web libraries/frameworks

Udash A Scala(.js) framework for building beautiful and maintainable Web Applications
Binding.scala/dom Reactive web framework for Scala.js
ScalaTags HTML templating library/DSL that works on both Scala/JVM and Scala.js
statictags Write HTML in both Scala JVM & JS. Extend tags and attributes with ease!
MetaWeb Functional low-level web framework for Scala and Scala.js
Widok Reactive web framework for the JVM and Scala.js
ScalaJS Binding Scala.js HTML binding library
ScalaCSS ScalaCSS aims to bring type-safety and clarity to: creating CSS, using CSS, maintaining CSS and correctness of CSS
Diode Diode is a Scala/Scala.js library for managing immutable application state with unidirectional data flow.
Sri Sri (Scala React interface) is a scalajs library to build truly native cross platform (mobile (ios and android) and web) applications.
OutWatch A functional & reactive UI framework based on Rx

Serialization/pickling libraries

uPickle Statically-typed pickling (via typeclasses/macros) for both Scala and Scala.js
BooPickle Highly efficient binary serialization for both Scala and Scala.js
Prickle Statically-typed pickling library with support for pickling object graphs containing shared objects and cycles
scala-json JSON pickling, advanced compile-time marshaling, full-feature DSL and more for Scala and Scala.js
Pushka Pure Scala pickler with annotations
Circe Yet another JSON library for Scala (built with Cats and Shapeless)
Jello Scala.js & JVM JSON serialization framework without thrills
Scala.js Pickling Pickling library based on explicit registration of picklers
Msgpack4z Functional msgpack serializer/deserializer for Scala
Scodec MessagePack Yet another MessagePack implementation for Scala
ScalaPB Generates case classes, serializers and deserializers for Protocol Buffers

Client-server communication

autowire Cross-compiling statically-typed Ajax calls and RPCs
RösHTTP A cross-platform HTTP client implementation for the browser, Node.js and the JVM.
Udash RPC Cross-compiling strongly typed client-server communication system for the Udash framework
endpoints Scala library to define HTTP-based communication protocols
scala-json-rpc Let your servers and clients communicate over function calls! A JSON-RPC 2.0 library for both Scala JVM & JS

FRP/reactive extensions

Scala.Rx Change-propagation/FRP library
Monix Library for composing asynchronous, lawful, event-based programs, with Observables, Task, Coeval and low-level primitives
MetaRx Reactive data structures for Scala and Scala.js
Binding.scala/core Reactive data-binding for both Scala.js and JVM

Dependency Injection

Airframe Guice-like run-time dependency injection library tailored to Scala traits
MacWire Compile-time dependency injection library

Miscellaneous

NICTA/rng Pure-functional random value generation.
Scala-Async An asynchronous programming facility for Scala/Scala.js.
Scalaxy Streams Make your Scala collections faster!
jsext Utilities for developing facades and working with Futures
shocon A partial pure-Scala, cross-compiled implementation of the HOCON configuration language
SHocon Simple pure-scala Typesafe HOCON implementation using FastParse
slogging A simple logging library with an API compatible to scala-logging (and slf4j)
scribe Logging framework for Scala and Scala.js
FastParse Fast to write, fast-running parser-combinators in Scala/Scala.js
Nyaya Random data generation.
cryptotpyrc Scala.js & JVM cross compiled RSA / Crypto library.
Akka Toolkit and runtime for building concurrent, distributed applications. Crosscompiled from Typesafe Akka sources
AkkaStream Streaming programming on top of Akka. Crosscompiled from Typesafe Akka Stream sources
cron4s CRON expression parser supporting multiple data-time libraries in the JVM and in the browser
squants API for Quantities, Units of Measure and Dimensional Analysis
wvlet-log A logging library with colors and source code locations

Tools

sbt-scala-js-map A Sbt plugin that configures source mapping for Scala.js projects hosted on Github
Workbench SBT plugin for Scala.JS live-reloading in the browser. (example app)
scalajs-benchmark Write benchmarks in Scala or JS, run in your browser. (online demo)
enableIf.scala A library that switches Scala code at compile-time, like #if in C/C++
sbt-node A Sbt plugin for integration with npm / node.js based build tools.

Additions and corrections to this section may be reported through GitHub issues. Please include Name, Url, Description and Dependency