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’smaven-metadata.xmlon 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_3artifact),2.13and2.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, soorg.typelevel::cats-core:2.13.0means the artifactcats-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 |
|
Front ends and native binaries |
Scala.js compiles to JavaScript for browsers and Node.js; Scala Native compiles to a native executable |
|
Scripts and glue |
Single-file programs with |
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 |
|
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 |
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 |
|
Cats |
Type classes ( |
|
|
Cats Effect |
A runtime and |
|
|
FS2 |
Purely functional streaming on top of Cats Effect |
|
|
Doobie |
A functional JDBC layer for Cats Effect; the newest release, |
|
|
ZIO |
A rival effect system with typed errors, an environment type and a large library family |
|
|
Ox |
Direct-style structured concurrency, streaming and resiliency on virtual threads; it needs JDK 21 or newer and Scala 3 (compare Virtual Threads) |
|
|
Kyo |
An effect system built on algebraic effects for Scala 3; the newest release, |
|
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 |
|
|
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 |
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, |
|
|
Tapir |
Describes HTTP endpoints as values and interprets them as servers, clients and OpenAPI documents over many backends |
|
|
Cask |
A small Flask-like web framework by Li Haoyi; it has its own page in this section, Web Servers with Cask |
|
|
ZIO HTTP |
HTTP server and client for the ZIO ecosystem |
|
|
http4s |
A typeful functional HTTP server and client for Cats Effect and FS2; |
|
|
Pekko HTTP |
HTTP server and client on Pekko streams, the Apache-licensed counterpart of Akka HTTP |
|
|
sttp client |
A client with one API over many HTTP backends; it has its own page, HTTP Client with sttp |
|
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 |
|
|
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 |
|
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 |
|
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 |
|
|
Circe |
JSON with automatic and semi-automatic codec derivation, in the Typelevel family; |
|
|
jsoniter-scala |
Macro-generated JSON codecs aimed at speed |
|
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 |
|
|
ScalaTest |
A test framework with several styles ( |
|
|
ScalaCheck |
Property-based testing with generators and shrinking; see Property-Based Testing |
|
|
specs2 |
A specification-style framework |
|
|
Weaver |
A test framework for Cats Effect programs |
|
Tooling
| Project | What it is | Latest stable and Scala versions | Links |
|---|---|---|---|
Scala CLI |
The command behind the |
1.18.0 (the |
|
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; |
|
Mill |
A build tool for Scala and other JVM languages, configured with Scala code |
1.3.0 on Maven Central ( |
|
Bloop |
A build server that compiles incrementally, used by Metals and Scala CLI |
2.1.2 |
|
Metals |
A language server that brings Scala support to VS Code, Vim, Emacs and other editors; see IDEs |
1.6.9 ( |
|
IntelliJ Scala plugin |
The JetBrains plugin for IntelliJ IDEA |
2026.3.19, for IntelliJ IDEA builds 263 |
|
Scalafmt |
The formatter; |
|
|
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) |
|
|
Coursier |
The artifact resolver behind |
2.1.26 |
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 |
|
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 |
|
Scala Toolkit |
A set of libraries (MUnit, OS-Lib, uPickle, sttp) with one version number, maintained under the |
|
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 ( |
Scala CLI and Mill (now under the |
Learning resources
Official documentation
| Resource | What it gives you |
|---|---|
the guided tour of the language; its section on the Scala ecosystem is one of the sources of this page’s selection |
|
short, example-first pages on each feature |
|
the detailed description of Scala 3 features, which this section follows |
|
tutorials for the Toolkit libraries |
|
moving a Scala 2 code base to Scala 3, in the order the Scala team recommends |
|
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 |
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 |
Cay Horstmann |
updated for Scala 3 |
|
Li Haoyi |
Scala 2.13 |
|
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) |
a paid course with Q&A sessions and code reviews by the Scala team |
|
free and premium courses on Scala, Typelevel, ZIO, Pekko and Spark; the official courses page notes a revenue partnership with the Scala Center |
|
interactive lessons that compile and run in the browser (not the same as the Tour on docs.scala-lang.org) |
|
a visual guide to the most common methods of the collections, complementing Collection Operations |
|
the full list, including video channels and university lectures |
If you know Java or Kotlin
| Idea | Scala page | Comparison page |
|---|---|---|
Collections library |
||
Missing values |
Optional and Null Safety |
|
Function values |
||
Concurrency |
References
-
Scaladex: version and platform information for Scala libraries.
-
Books and Online Courses of the official documentation.
-
Maven Central: the
maven-metadata.xmlfiles read for the version cells (read only, nothing downloaded).