Ecosystem & Learning Resources

This content was generated with the assistance of AI and should be verified against the official documentation before being relied on in production.

The reference material consulted while preparing these pages is listed in the section bibliography.

This page is the only place in the Scala section that talks about libraries, frameworks and tools built on Scala, and it describes each of them in one line: what it is, the latest stable version, the Scala versions it is published for, and where its own site and documentation live. None of them is documented further here; the section’s other pages cover the language itself and the official Scala Toolkit. The page was written against Scala 3.10.0 (released 2026-10-12) with Scala 3.9.0 as the LTS line, and every version and link below was checked on 2026-10-16. Versions move quickly, so treat the version cells as a snapshot and read the project’s own site before you pin anything.

How the page was assembled

  • Selection criterion. A project is listed when the official Scala sites link to it (the docs.scala-lang.org pages on tools, books and courses, and the Scala 3 Book’s feature overview) or when it is one of the most commonly used Scala libraries in its area. The page does not rank projects and does not quote popularity statistics, download counts or star counts; the order inside a table groups related projects and is not a ranking.

  • Versions. The "Latest stable" cell is the newest release without a milestone (M), release-candidate (RC), snapshot or preview suffix, read from the project’s maven-metadata.xml on Maven Central, or from the project’s own site or release page for tools that are not libraries (Scala CLI, Metals, the IntelliJ plugin, Scala Native). Where a newer pre-release exists it is named, because several important projects (http4s, Doobie, Kyo, Pekko 2) are in that state.

  • Scala versions. For libraries this lists the Scala binary versions for which the latest stable release is published on Maven Central: 3 (the _3 artifact), 2.13 and 2.12. It says nothing about Scala.js or Scala Native artifacts, which many of these libraries also publish; see their sites. The Scala version in a coordinate is written with the :: shorthand of the Scala CLI and Coursier, so org.typelevel::cats-core:2.13.0 means the artifact cats-core_3 (or _2.13, depending on the project’s Scala version) at version 2.13.0.

  • Nothing here is run. The page contains no program. The one-line coordinates are the form the project’s own documentation or Maven Central page shows, and they are not tested against this section’s examples.

Where Scala is used

Area What Scala is used for Pages in this section

Data engineering

Apache Spark, Apache Flink and Kafka-based pipelines; collection pipelines and case-class domain models are the same ideas at small scale

Collections Overview, Parallel Collections & Concurrency Libraries

Backend services

HTTP APIs, microservices and command-line services with the effect and web libraries below

Web Servers with Cask, HTTP Client with sttp, Futures & Promises

Compilers and tools

Scala itself, Scalafmt, Metals, sbt and many language tools are Scala programs; type classes, macros and inline make them concise

Metaprogramming Overview, Scala CLI, sbt & Build Tools

Front ends and native binaries

Scala.js compiles to JavaScript for browsers and Node.js; Scala Native compiles to a native executable

Scala.js & Scala Native

Scripts and glue

Single-file programs with //> using directives and the Toolkit

Files & Processes with OS-Lib, JSON with uPickle

Discovery and playgrounds

Project What it is Latest stable and Scala versions Links

Scaladex

The Scala Center’s index of Scala libraries, with the Scala and platform versions each release is published for

a web service, no version

Site

Scastie

A browser playground that compiles and runs Scala snippets and shares them by link; covered in REPL, Worksheets & Scastie

a web service, no version

Site, Source

Scaladex is the first stop when you need to know whether a library is available for your Scala version, because it lists the Scala 2.12, 2.13, 3, Scala.js and Scala Native artifacts of every release it knows about.

Functional effect systems and libraries

Project What it is Latest stable and Scala versions Links

Typelevel

The organization and community behind a family of libraries built on Cats; the entry point to the projects below

umbrella site

Site

Cats

Type classes (Functor, Monad, Semigroup and more) and data types for functional programming; the base of the Typelevel stack

org.typelevel::cats-core:2.13.0, Scala 3, 2.13, 2.12

Site and docs

Cats Effect

A runtime and IO effect type with fibers, resource safety and structured concurrency

org.typelevel::cats-effect:3.7.1, Scala 3, 2.13, 2.12

Site and docs

FS2

Purely functional streaming on top of Cats Effect

co.fs2::fs2-core:3.14.0, Scala 3, 2.13, 2.12

Site and docs

Doobie

A functional JDBC layer for Cats Effect; the newest release, 1.0.0-RC12, is a release candidate

org.tpolecat::doobie-core:0.13.4, Scala 3, 2.13, 2.12

Site and docs

ZIO

A rival effect system with typed errors, an environment type and a large library family

dev.zio::zio:2.1.27, Scala 3, 2.13, 2.12

Site and docs

Ox

Direct-style structured concurrency, streaming and resiliency on virtual threads; it needs JDK 21 or newer and Scala 3 (compare Virtual Threads)

com.softwaremill.ox::core:1.0.9, Scala 3 only

Site and docs

Kyo

An effect system built on algebraic effects for Scala 3; the newest release, 1.0.0-RC7, is a release candidate

io.getkyo::kyo-core:0.19.0, Scala 3 only (the _2.13 artifact stops at 0.8.5)

Site, Source

These libraries make effects values: a description of work that a runtime runs later, which gives cancellation, retries and resource safety as library features. Ox takes the opposite route and keeps ordinary blocking code, relying on the JDK’s virtual threads for scalability. The built-in alternative is the Future of Futures & Promises. A reader coming from Kotlin will find the same questions answered by coroutines in Coroutines Basics.

Actors and streaming

Project What it is Latest stable and Scala versions Links

Apache Pekko

An Apache Software Foundation fork of Akka 2.6.x, taken before Akka adopted the Business Source License; actors, streams, cluster and persistence for Scala and Java

org.apache.pekko::pekko-actor:1.7.1, Scala 3, 2.13, 2.12; 2.0.0-M4 is a milestone

Site, Docs

Akka

The original actor and streams toolkit from Lightbend, now under the Business Source License 1.1 (see below)

the license page of the documentation names Akka 2.10.24; Maven Central carries releases only up to the 2.8 line

Site, Docs

License change. Akka was Apache 2.0 licensed until Lightbend announced on 7 September 2022 that it was moving to the Business Source License 1.1: source available, free for development and non-production use, with production use requiring a commercial license from Lightbend. The license file in the Akka documentation carries a change date, after which a release converts to Apache 2.0, and an additional usage grant for specific uses such as Play Framework. Apache Pekko is the Apache-licensed continuation, forked from Akka 2.6.x. Older books and tutorials that say "use Akka" are therefore usually describing a library whose open source successor is Pekko; Cats Effect, ZIO and Ox are the other common choices for concurrency. The project’s own sources are the announcement and the license page.

Web frameworks and HTTP

Project What it is Latest stable and Scala versions Links

Play Framework

A full-stack web framework for Scala and Java; Play 3 is built on Pekko and Play 2 on Akka. The newest line, 3.1.0-M9, is a milestone

org.playframework::play:3.0.12, Scala 3, 2.13

Site, Docs

Tapir

Describes HTTP endpoints as values and interprets them as servers, clients and OpenAPI documents over many backends

com.softwaremill.sttp.tapir::tapir-core:1.13.33, Scala 3, 2.13, 2.12

Site and docs

Cask

A small Flask-like web framework by Li Haoyi; it has its own page in this section, Web Servers with Cask

com.lihaoyi::cask:0.11.3, Scala 3, 2.13, 2.12

Site and docs

ZIO HTTP

HTTP server and client for the ZIO ecosystem

dev.zio::zio-http:3.11.6, Scala 3, 2.13, 2.12

Docs

http4s

A typeful functional HTTP server and client for Cats Effect and FS2; 0.23 is the stable line and 1.0.0-M49 the latest milestone

org.http4s::http4s-core:0.23.38, Scala 3, 2.13, 2.12

Site and docs

Pekko HTTP

HTTP server and client on Pekko streams, the Apache-licensed counterpart of Akka HTTP

org.apache.pekko::pekko-http:1.4.2, Scala 3, 2.13, 2.12

Docs

sttp client

A client with one API over many HTTP backends; it has its own page, HTTP Client with sttp

com.softwaremill.sttp.client4::core:4.0.27, Scala 3, 2.13, 2.12

Site and docs

Data

Project What it is Latest stable and Scala versions Links

Apache Spark

A distributed data processing engine, written in Scala; since 4.0.0 its documentation says it runs on Scala 2.13 only

org.apache.spark:spark-core_2.13:4.2.0; no _3 artifact

Site, Docs

Apache Flink

A stream processing engine. The Scala DataStream and DataSet APIs were removed in Flink 2.0; Scala programs use the Java DataStream API instead

Flink 2.3.0 (a Java and Scala code base; the last Scala API artifact on Maven Central is flink-streaming-scala_2.12:1.20.5)

Site, Docs

Apache Kafka

A distributed event log. The broker code base is Scala and Java; the clients are Java libraries that any Scala program can call

org.apache.kafka:kafka_2.13:4.4.0 (the broker artifact), Scala 2.13 and 2.12

Site, Docs

Using Spark from Scala 3. Because Spark publishes only _2.13 artifacts, a Scala 3 project asks for that artifact explicitly. In sbt this is CrossVersion.for3Use2_13 on the dependency, which the Scala 3 migration guide describes in Mixing Scala 2.13 and Scala 3 classpaths. Scala 3 reads Scala 2.13 libraries, but the reverse is limited: a Scala 3.8 or newer library cannot be read from a Scala 2.13 build through the TASTy reader. The rules, with the exact versions, are in Versions, Compatibility & JDKs and Scala 2 & Scala 3 Compatibility.

JSON and serialization

Project What it is Latest stable and Scala versions Links

uPickle

Lightweight JSON and binary serialization by Li Haoyi, part of the Toolkit; it has its own page, JSON with uPickle

com.lihaoyi::upickle:4.4.3, Scala 3, 2.13, 2.12

Site and docs

Circe

JSON with automatic and semi-automatic codec derivation, in the Typelevel family; 0.15.0-M1 is a milestone

io.circe::circe-core:0.14.17, Scala 3, 2.13, 2.12

Site and docs

jsoniter-scala

Macro-generated JSON codecs aimed at speed

com.github.plokhotnyuk.jsoniter-scala::jsoniter-scala-core:2.41.5, Scala 3, 2.13, 2.12

Source and docs

Testing

Project What it is Latest stable and Scala versions Links

MUnit

The test framework of the Toolkit; it has its own pages, Testing with MUnit and MUnit Async, Fixtures & Other Frameworks

org.scalameta::munit:1.3.6, Scala 3, 2.13, 2.12 (the Toolkit pins an older MUnit)

Site and docs

ScalaTest

A test framework with several styles (AnyFunSuite, AnyFlatSpec and others)

org.scalatest::scalatest:3.2.20, Scala 3, 2.13, 2.12; 3.3.0-SNAP4 is a snapshot

Site and docs

ScalaCheck

Property-based testing with generators and shrinking; see Property-Based Testing

org.scalacheck::scalacheck:1.20.0, Scala 3, 2.13, 2.12

Site and docs

specs2

A specification-style framework

org.specs2::specs2-core:5.9.1 for Scala 3; 4.23.0 for 2.13 and 2.12

Site and docs

Weaver

A test framework for Cats Effect programs

org.typelevel::weaver-cats:0.13.0, Scala 3, 2.13, 2.12

Site and docs

Tooling

Project What it is Latest stable and Scala versions Links

Scala CLI

The command behind the scala launcher: scripts, //> using directives, tests and packaging; see Scala CLI

1.18.0 (the scala command of Scala 3.10.0 bundles 1.17.1); Scala 2 and 3

Site, Docs

sbt

The most widely used Scala build tool; the 2.0 line is stable and the 1.x line is still maintained; see sbt & Build Tools

2.0.10; 2.1.0-RC1 is a release candidate; 1.13.0 is the newest 1.x on Maven Central

Site and docs

Mill

A build tool for Scala and other JVM languages, configured with Scala code

1.3.0 on Maven Central (mill-dist)

Site and docs

Bloop

A build server that compiles incrementally, used by Metals and Scala CLI

2.1.2

Site and docs

Metals

A language server that brings Scala support to VS Code, Vim, Emacs and other editors; see IDEs

1.6.9 (2.0.0-RC1 is a release candidate)

Site and docs

IntelliJ Scala plugin

The JetBrains plugin for IntelliJ IDEA

2026.3.19, for IntelliJ IDEA builds 263

Plugin page, Docs

Scalafmt

The formatter; scala fmt and sbt run it

org.scalameta::scalafmt-core:3.11.5, Scala 3, 2.13, 2.12

Site and docs

Scalafix

Linting and rewrite rules, used for migrations as well as style; its documentation lists the setups it is tested on (Scala 2.12.21, 2.13.18 and 3.9.0 LTS at the check date)

ch.epfl.scala:scalafix-core_2.13:0.14.9 (also _2.12)

Site and docs

Coursier

The artifact resolver behind cs setup and most Scala tooling; see Installing Scala

2.1.26

Site, Docs

Platforms and the Toolkit

Project What it is Latest stable and Scala versions Links

Scala.js

Compiles Scala to JavaScript; covered in Scala.js & Scala Native

1.22.0; the Scala versions are listed on its site

Site, Docs

Scala Native

An ahead-of-time compiler and lightweight runtime that produces native executables; covered on the same page

0.5.12 (the stable release named on its site); the Scala versions are listed on its site

Site and docs

Scala Toolkit

A set of libraries (MUnit, OS-Lib, uPickle, sttp) with one version number, maintained under the scala GitHub organization; Cask is not part of it. The tutorial pages of the official Toolkit documentation still showed Toolkit 0.7.0 when this was checked, while the latest release is 0.9.2

org.scala-lang::toolkit:0.9.2, Scala 3 and 2.13; in the Scala CLI //> using toolkit 0.9.2

Docs, Source

Retired and renamed projects

Older books and blog posts mention projects that have ended or moved. Their names are listed so that a search for them leads here.

Name Status Use instead

Akka HTTP

part of the Akka family, so under the same Business Source License since the Akka license change; the Apache-licensed fork is Pekko HTTP, listed above

Pekko HTTP, http4s, Tapir, Play

Lagom

deprecated; its README announces security patches only until 1 July 2024 and no patches afterwards; the last release, 1.6.7, is from December 2021

the Akka toolkit for projects that still need it, or the web and effect libraries above

Other Li Haoyi libraries

OS-Lib (com.lihaoyi::os-lib:0.11.8), requests-scala (com.lihaoyi::requests:0.9.3), fastparse (com.lihaoyi::fastparse:3.1.1) and scalatags (com.lihaoyi::scalatags:0.13.1) are alive, all published for Scala 3; Ammonite and the old lihaoyi/mill repository are the names found in older books

Scala CLI and Mill (now under the com-lihaoyi organization); see the organization page

Learning resources

Official documentation

Resource What it gives you

Scala 3 Book

the guided tour of the language; its section on the Scala ecosystem is one of the sources of this page’s selection

Tour of Scala

short, example-first pages on each feature

Scala 3 Reference

the detailed description of Scala 3 features, which this section follows

Scala Toolkit documentation

tutorials for the Toolkit libraries

Scala 3 migration guide

moving a Scala 2 code base to Scala 3, in the order the Scala team recommends

Glossary

short definitions of Scala terms (higher-kinded type, path-dependent type, and so on)

Scala 2.13 specification and Scala 3.4 specification (archive)

the formal language definitions

Scala community

forums, chat and local groups

The pages of this section that replace these for a particular reader are Getting Started & Versions, Scala for Java, Python & JavaScript Developers, Style Guide and Release History & What’s New. Pages and books written before 2021 are mostly Scala 2: how the removed features map to the current ones is collected in Incompatibilities & Dropped Features, and upgrading within Scala 3 in Upgrading Between Scala 3 Versions.

Books

The books page of the official documentation lists these titles, with the Scala version each page states; it calls the list a selection.

Title Author Scala version stated

Programming in Scala, 5th edition

Martin Odersky, Lex Spoon, Bill Venners

updated for Scala 3

Programming Scala, 3rd edition

Dean Wampler

updated for Scala 3

Scala for the Impatient

Cay Horstmann

updated for Scala 3

Hands-on Scala Programming

Li Haoyi

Scala 2.13

Get Programming with Scala

Daniela Sfregola

Scala 2 and 3

Creative Scala (free online)

Dave Gurnell, Noel Welsh

no version stated; a first course built around computer graphics

Functional Programming in Scala, 2nd edition

Michael Pilquist, Paul Chiusano, Rúnar Bjarnason

updated for Scala 3

The books used to prepare this section are listed with their editions and the Scala version each was written for in the section bibliography.

Courses and interactive material

Resource Notes

Effective Programming in Scala and Functional Programming Principles in Scala

Coursera courses by the Scala Center at EPFL; the official courses page said free access to the Center’s Coursera courses was not currently available and was being restored (tracking issue)

EPFL Extension School: Effective Programming in Scala

a paid course with Q&A sessions and code reviews by the Scala team

Rock the JVM

free and premium courses on Scala, Typelevel, ZIO, Pekko and Spark; the official courses page notes a revenue partnership with the Scala Center

Tour of Scala

interactive lessons that compile and run in the browser (not the same as the Tour on docs.scala-lang.org)

Visual Scala Reference

a visual guide to the most common methods of the collections, complementing Collection Operations

Online courses page

the full list, including video channels and university lectures

If you know Java or Kotlin

Idea Scala page Comparison page

Collections library

Collections Overview

Collections Framework

Missing values

Option & Null Safety

Optional and Null Safety

Function values

Functions as Values

Lambdas & Method References

Concurrency

Futures & Promises

Virtual Threads and Coroutines Basics

References