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.
JDK extensions |
||
Name | Description | Dependency |
---|---|---|
scala-java-time | Platform-independent implementation of java.time |
|
scalajs-jsjoda-as-java-time | Alternative to scala-java-time implemented by wrapping js-joda classes |
|
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. |
|
Cats Effect | A pure, asynchronous runtime implementing the “IO” monad. |
|
Monocle | Optics library strongly inspired by Haskell Lens. |
|
Quicklens | Modify deeply nested fields in case classes. |
|
fs2 | Purely functional, effectful, and polymorphic stream processing and I/O. |
|
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! |
|
Scala DOM Types | Scala types for your library to represent HTML tags, attributes, properties and CSS styles |
|
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 | The Functional and Reactive Web-Frontend Library for Scala.js |
|
Slinky | Write Scala.js React apps just like you would in ES6 |
|
Laminar | Simple, expressive, and safe UI library for Scala.js |
|
Tyrian | Elm-inspired Scala UI library with first-class Cats Effect support |
|
Linden | Functional reactive frontend framework |
|
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 | Combinator library for working with binary data. |
|
Scodec MessagePack | Yet another MessagePack implementation for Scala |
|
ScalaPB | Generates case classes, serializers and deserializers for Protocol Buffers |
|
kantan.csv | CSV handling library for Scala |
|
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 |
|
http4s | A minimal, idiomatic Scala interface for typeful, functional, streaming HTTP. |
|
http4s-dom | http4s, in a browser near you. |
|
feral | A framework for writing serverless functions and deploying them to the cloud. |
|
natchez | Functional, distributed tracing library. |
|
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 |
|
Airstream | State propagation and event streams with mandatory ownership and no glitches |
|
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 |
|
EvilPlot | Combinator-based 2D plotting library for easily building composable and extensible data visualizations |
|
sconfig | Scala port of the lightbend/config HOCON Java library |
|
blake3 | Blake3 for scala |
|
skunk | A data access library for Scala + Postgres. |
|
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