Awesome Scala
A community driven list of useful Scala libraries, frameworks and software. This is not a catalog of all the libraries, just a starting point for your explorations. Inspired by awesome-python . Other amazingly awesome lists can be found in the awesome-awesomeness list.
Also awesome is Scaladex , the searchable, tagged, and centralized index of Scala libraries.
Projects with over 500 stargazers are in bold.
Your contributions are always welcome! Please submit a pull request or create an issue to add a new framework, library or software to the list. Do not submit a project that hasn’t been updated in the past 6 months or is not awesome.
Don't modify README.md
in your pull request. It is automatically generated. Modify template.md
instead.
Name
Description
GitHub Activity
Name
Description
GitHub Activity
Database access libraries in Scala.
Name
Description
GitHub Activity
akka-persistence-gcp-datastore
akka-persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode.
anorm
The Anorm database library
clickhouse-scala-client
Clickhouse Scala Client with Reactive Streams support
couchbase-jvm-clients
The Couchbase Monorepo for JVM Clients: Java, Scala, io-core…
doobie
Functional JDBC layer for Scala.
elastic4s
🔍 Elasticsearch Scala Client - Reactive, Non Blocking, Type Safe, HTTP Client
etcd4s
Scala etcd client implementing V3 APIs
laserdisc
A Future-free Fs2 native pure FP Redis client
mysql-binlog-stream
None
neotypes
Scala lightweight, type-safe, asynchronous driver for neo4j
pulsar4s
Idiomatic, typesafe, and reactive Scala client for Apache Pulsar
zio-quill
Compile-time Language Integrated Queries for Scala
ReactiveMongo
🍃 Non-blocking, Reactive MongoDB Driver for Scala
rediscala
Non-blocking, Reactive Redis driver for Scala (with Sentinel support)
relate
Performant database access in Scala
sangria
Scala GraphQL implementation
scala-forklift
Type-safe data migration tool for Slick, Git and beyond.
scalarelational
Type-Safe framework for defining, modifying, and querying SQL databases
scalikejdbc
A tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs.
scanamo
Simpler DynamoDB access for Scala
slick
Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala
slick-pg
Slick extensions for PostgreSQL
squery
Simple SQL queries in Scala 3
squeryl
A Scala DSL for talking with databases with minimum verbosity and maximum type safety
molecule
Molecule translates custom Scala code to database queries for multiple databases.
zio-redis
A ZIO-based redis client
skunk
A data access library for Scala + Postgres.
kvs
Highly available distributed strong eventual consistent and sequentially consistent storage with feeds, sorting and search
Name
Description
GitHub Activity
Graphical User Interfaces
Libraries for creation of graphical user interfaces
Name
Description
GitHub Activity
scalafx
ScalaFX simplifies creation of JavaFX-based user interfaces in Scala
Scala frameworks for web development.
Name
Description
GitHub Activity
analogweb-scala
Tiny High Performance HTTP Server for Scala
cask
Cask: a Scala HTTP micro-framework. Cask makes it easy to set up a website, backend server, or REST API using Scala
finatra
Fast, testable, Scala services built on TwitterServer and Finagle
framework
Lift Framework
playframework
The Community Maintained High Velocity Web Framework For Java and Scala.
scalajs-react
Facebook's React on Scala.JS
scalatra
Tiny Scala high-performance, async web framework, inspired by Sinatra
sharaf
Minimalistic Scala 3 web framework
unfiltered
A toolkit for servicing HTTP requests in Scala
youi
Next generation user interface and application development in Scala and Scala.js for web, mobile, and desktop.
Scala libraries for Reactive Web development
Name
Description
GitHub Activity
Binding.scala
Reactive data-binding for Scala
udash-core
Scala framework for building beautiful and maintainable web applications.
vertx-lang-scala
Vert.x for Scala
Data Binding and Validation
Scala libraries for data binding and validation
Name
Description
GitHub Activity
dupin
Minimal, idiomatic, customizable validation Scala library.
octopus
Scala library for boilerplate-free validation
Scala libraries for i18n.
Name
Description
GitHub Activity
scaposer
GNU Gettext .po file loader for Scala
Libraries for implementing authentications schemes.
Name
Description
GitHub Activity
play-googleauth
Simple play module for authenticating against Google
play-pac4j
Security library for Play framework 2 in Java and Scala: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
scala-oauth2-provider
OAuth 2.0 server-side implementation written in Scala
Cryptography and Encryption Libraries.
Name
Description
GitHub Activity
scrypto
Cryptographic primitives for Scala
jose
Extensible JOSE library for Scala
Libraries for code testing.
Name
Description
GitHub Activity
bencher
🐰 Bencher - Continuous Benchmarking
cornichon
Testing tool in Scala for HTTP JSON API
gatling
Modern Load Testing as Code
minitest
The super light testing library for Scala and Scala.js
mockito-scala
Mockito for Scala language
munit
Scala testing library with actionable errors and extensible APIs
scalacheck
Property-based testing for Scala
ScalaMock
Native Scala mocking framework
scalaprops
property based testing library for Scala
scalatest
A testing tool for Scala and Java developers
specs2
Software Specifications for Scala
stryker4s
Mutation testing for Scala
weaver-test
A test framework that runs everything in parallel.
testcontainers-scala
Docker containers for testing in scala
utest
A simple testing framework for Scala
Libraries for work with json.
Name
Description
GitHub Activity
argonaut
Purely functional JSON parser and library in scala.
borer
Efficient CBOR and JSON (de)serialization in Scala
circe
Yet another JSON library for Scala
diffson
A scala diff/patch library for Json
jackson-module-scala
Add-on module for Jackson (https://github.com/FasterXML/jackson ) to support Scala-specific datatypes
jawn
Jawn is for parsing jay-sawn (JSON)
json4s
JSON library
jsoniter-scala
Scala macros for compile-time generation of safe and ultra-fast JSON codecs + circe booster
ninny-json
JSON typeclasses that know the difference between null and absent fields
play-json
The Play JSON library
ScalaJack
Fast JSON parser/generator for Scala
spray-json
A lightweight, clean and simple JSON implementation in Scala
tupson
Stupid simple Scala 3 library for writing and reading JSON
zio-json
Fast, secure JSON library with tight ZIO integration.
Libraries for work with YAML.
Name
Description
GitHub Activity
Libraries for work with CSV.
Name
Description
GitHub Activity
kantan.csv
CSV handling library for Scala
scala-csv
CSV Reader/Writer for Scala
spata
Functional, stream-based CSV processor for Scala
Libraries for serializing and deserializing data for storage or transport.
Name
Description
GitHub Activity
borer
Efficient CBOR and JSON (de)serialization in Scala
avro4s
Avro schema generation and serialization / deserialization for Scala
chill
Scala extensions for the Kryo serialization library
ScalaPB
Protocol buffer compiler for Scala.
scodec
Scala combinator library for working with binary data
scrooge
A Thrift parser/generator
upickle
uPickle: a simple, fast, dependency-free JSON & Binary (MessagePack) serialization library for Scala
proto
Lightweight and fast serialization library for Scala 2/3 based on Protocol Buffers with macros
Science and Data Analysis
Libraries for scientific computing, data analysis and numerical processing.
Name
Description
GitHub Activity
algebird
Abstract Algebra for Scala
ipex-llm
Accelerate local LLM inference and finetuning (LLaMA, Mistral, ChatGLM, Qwen, Baichuan, Mixtral, Gemma, Phi, MiniCPM, etc.) on Intel XPU (e.g., local PC with iGPU and NPU, discrete GPU such as Arc, Flex and Max); seamlessly integrate with llama.cpp, Ollama, HuggingFace, LangChain, LlamaIndex, GraphRAG, DeepSpeed, vLLM, FastChat, Axolotl, etc.
breeze
Breeze is/was a numerical processing library for Scala.
doddle-model
🍰 doddle-model: machine learning in Scala.
libra
A dimensional analysis library based on dependent types
LoMRF
LoMRF is an open-source implementation of Markov Logic Networks
mgo
Purely functional genetic algorithms for multi-objective optimisation
MLLib
Machine Learning framework for Spark
numsca
numsca is numpy for scala
onnx-scala
An ONNX (Open Neural Network eXchange) API and backend for typeful, functional deep learning and classical machine learning in Scala 3
openmole
Workflow engine for exploration of simulation models using high throughput computing
Optimus
Optimus is a mathematical programming library for Scala.
OscaR
a Scala toolkit for solving Operations Research problems
rings
Rings: efficient JVM library for polynomial rings
smile
Statistical Machine Intelligence & Learning Engine
spire
Powerful new number types and numeric abstractions for Scala.
squants
The Scala API for Quantities, Units of Measure and Dimensional Analysis
zeppelin
Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more.
spark-nlp
State of the Art Natural Language Processing
VecMatLib
Open source Scala library that provides data structures for vectors and matrices
Name
Description
GitHub Activity
flink
Apache Flink
gridscale
Scala library for accessing various file, batch systems, job schedulers and grid middlewares.
kafka
Mirror of Apache Kafka
alpakka-kafka
Alpakka Kafka connector - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka.
scio
A Scala API for Apache Beam and Google Cloud Dataflow.
Scrunch
A Scala wrapper for Apache Crunch which provides a framework for writing, testing, and running MapReduce pipelines.
spark
Apache Spark - A unified analytics engine for large-scale data processing
gallia-core
A schema-aware Scala library for data transformation
nussknacker
Low-code tool for automating actions on real time data
Stream processing for the users.
Libraries for creation of command line interfaces
Name
Description
GitHub Activity
decline
A composable command-line parser for Scala.
mainargs
A small, convenient, dependency-free library for command-line argument parsing in Scala
scallop
a simple Scala CLI parsing library
scopt
command line options parsing for Scala
Image processing and image analysis
2D and 3D image processing and image analysis
Name
Description
GitHub Activity
scalismo
Scalable Image Analysis and Shape Modelling
scrimage
JVM - Java, Kotlin, Scala image processing library
Sound processing and music
Name
Description
GitHub Activity
Functional Reactive Programming
Event streams, signals, observables, etc.
Name
Description
GitHub Activity
fs2
Compositional, streaming I/O library for Scala
iteratee
Iteratees for Cats
monix
Asynchronous, Reactive Programming for Scala and Scala.js.
REScala
REScala - distributed and reactive programming embedded in OO and FP programs.
zio
ZIO — A type-safe, composable library for async and concurrent programming in Scala
vertx-lang-scala
Vert.x for Scala
Modularization and Dependency Injection
Modularization of applications, dependency injection, etc.
Name
Description
GitHub Activity
airframe
Essential Building Blocks for Scala
izumi
Productivity-oriented collection of lightweight fancy stuff for Scala toolchain
macwire
Zero-cost, compile-time, type-safe dependency injection library.
scaldi
Lightweight Scala Dependency Injection Library
jam
Incredibly simple DI Scala library.
Libraries and frameworks for writing distributed applications.
Name
Description
GitHub Activity
akka
Build highly concurrent, distributed, and resilient message-driven applications on the JVM
annette
Platform to build distributed, scalable, enterprise-wide business applications
finagle
A fault tolerant, protocol-agnostic RPC system
poppet
Minimal, type-safe RPC Scala library.
automorph
RPC client and server library for Scala
Scala extensions.
Name
Description
GitHub Activity
Ammonite
Scala Scripting
better-files
Simple, safe and intuitive Scala I/O
blindsight
Blindsight is a Scala logging API with DSL based structured logging, fluent logging, semantic logging, flow logging, and context aware logging.
cats
Lightweight, modular, and extensible library for functional programming.
chimney
Scala library for boilerplate-free, type-safe data transformations
chronoscala
A JSR-310 port of nscala_time
Dsl.scala
A framework to create embedded Domain-Specific Languages in Scala
each
A macro library that converts native imperative syntax to scalaz's monadic expressions
eff
Eff monad for cats - https://atnos-org.github.io/eff
enableIf.scala
A library that toggles Scala code at compile-time, like #if in C/C++
enumeratum
A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations.
log4s
High-performance SLF4J wrapper for Scala.
izumi
Productivity-oriented collection of lightweight fancy stuff for Scala toolchain
Monocle
Optics library for Scala
nscala-time
A new Scala wrapper for Joda Time based on scala-time
quicklens
Modify deeply nested case class fields
refined
Refinement types for Scala
scala-async
An asynchronous programming facility for Scala
scala-graph
Graph for Scala is intended to provide basic graph functionality seamlessly fitting into the Scala Collection Library. Like the well known members of scala.collection, Graph for Scala is an in-memory graph library aiming at editing and traversing graphs, finding cycles etc. in a user-friendly way.
scala-logging
Convenient and performant logging library for Scala wrapping SLF4J.
scalameta
Library to read, analyze, transform and generate Scala programs
scalaz
Principled Functional Programming in Scala
scribe
The fastest logging library in the world. Built from scratch in Scala and programmatically configurable.
shapeless
Generic programming for Scala
simulacrum
First class syntax support for type classes in Scala
squid
Squid – type-safe metaprogramming and compilation framework for Scala
tinylog
tinylog is a lightweight logging framework for Java, Kotlin, Scala, and Android
util
Wonderful reusable code from Twitter
Projects that don't fit into any specific category.
Name
Description
GitHub Activity
Ammonite
Scala Scripting
bootzooka
Simple project to quickly start developing a Scala-based microservice or web application, without the need to write login, user registration etc.
eclair
A scala implementation of the Lightning Network.
fansi
Scala/Scala.js library for manipulating Fancy Ansi colored strings
fs2-aws
fs2 utilities to interact with AWS
mailgun4s
Mailgun API implementation in Scala
managerial
A zero-dependency Scala library for managing resources monadically
media4s
Scala command-line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media.
play-swagger
Swagger spec generator for play framework
PPrint
Pretty-printing value, types and type-signatures in Scala
pureconfig
A boilerplate-free library for loading configuration files
service-chassis
A scala chassis to get your applications and services bootstrapped quickly
spliff
Efficient diffing in Scala
scountries
Scala library that provides an enumeration of ISO 3166 codes for countries, along with their subdivisions.
scurl-detector
Scala library that detects and extracts URLs from text.
aptus-core
A utility library aiming to simplify the Scala coding experience.
Scala libraries and wrappers for Android development.
Name
Description
GitHub Activity
scaloid
Scaloid makes your Android code easy to understand and maintain.
Scala libraries and wrappers for HTTP clients.
Name
Description
GitHub Activity
akka-http
The Streaming-first HTTP server/module of Akka
reboot
Scala wrapper for the Java AsyncHttpClient.
finch
Scala combinator library for building Finagle HTTP services
http4s
A minimal, idiomatic Scala interface for HTTP
lolhttp
An HTTP Server and Client library for Scala.
requests-scala
A Scala port of the popular Python Requests HTTP client: flexible, intuitive, and straightforward to use.
scalaxb
scalaxb is an XML data binding tool for Scala.
sttp
The Scala HTTP client you always wanted!
tapir
Rapid development of self-documenting APIs
endpoints4s
Describe HTTP endpoints in Scala and derive clients, servers, and documentation
frontier
A lightweight HTTP/WebSocket server built with ZIO
Scala libraries for interactions with the Web of Data, and other RDF tools.
Name
Description
GitHub Activity
scowl
A Scala DSL for programming with the OWL API.
Scala libraries for gathering metrics and monitoring applications.
Name
Description
GitHub Activity
metrics-scala
The scala API for Dropwizard's Metrics.
Scala libraries for creating parsers.
Name
Description
GitHub Activity
atto
friendly little parsers
fastparse
Writing Fast Parsers Fast in Scala
parboiled2
A macro-based PEG parser generator for Scala 2.10+
scala-parser-combinators
simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module
cats-parse
A parsing library for the cats ecosystem
Sbt plugins to make your life easier.
Name
Description
GitHub Activity
better-monadic-for
Desugaring scala for
without implicit withFilter
s
coursier
Pure Scala Artifact Fetching
mdoc
Typechecked markdown documentation for Scala
sbt-api-mappings
An Sbt plugin that fills apiMappings for common Scala libraries.
sbt-assembly
Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt)
sbt-buildinfo
I know this because build.sbt knows this.
sbt-ci-release
sbt plugin to automate Sonatype releases from GitHub Actions
sbt-dependency-check
SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). 🌈
sbt-docker
Create Docker images directly from sbt
sbt-doctest
Doctest for scala
sbt-ghpages
git, site and ghpages support for sbt projects.
sbt-header
sbt-header is an sbt plugin for creating file headers, e.g. copyright headers
sbt-hepek
Sbt plugin for rendering Scala objects to files. And more!
sbt-ide-settings
SBT plugin for tweaking various IDE settings
sbt-jmh
"Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness)
sbt-microsites
An sbt plugin to create awesome microsites for your project
mima
A tool for catching binary incompatibility in Scala
sbt-native-packager
sbt Native Packager
sbt-pack
A sbt plugin for creating distributable Scala packages.
sbt-pgp
PGP plugin for sbt
sbt-release
A release plugin for sbt
sbt-scala-js-map
A Sbt plugin that configures source mapping for Scala.js projects hosted on Github
sbt-scalafmt
sbt plugin for Scalafmt
sbt-scoverage
sbt plugin for scoverage
sbt-site
Site generation for sbt
sbt-sonatype
A sbt plugin for publishing Scala/Java projects to the Maven central.
sbt-unidoc
sbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects.
sbt-updates
sbt plugin that can check Maven and Ivy repositories for dependency updates
sbt-eclipse
Plugin for sbt to create Eclipse project definitions
splain
better implicit errors for scala
xsbt-web-plugin
Servlet support for sbt
sbt-git
A git plugin for sbt
XML and HTML generation and processing
Name
Description
GitHub Activity
scala-scraper
A Scala library for scraping content from HTML pages
xs4s
XML Streaming for Scala including FS2/cats support
phobos
Efficient and expressive XML data-binding library for Scala
Name
Description
GitHub Activity
Laika
Site and E-book Generator and Customizable Text Markup Transformer for sbt, Scala and Scala.js
JavaScript generation and interop libraries.
Name
Description
GitHub Activity
scala-js
Scala.js, the Scala to JavaScript compiler
Name
Description
GitHub Activity
akka-quartz-scheduler
Quartz Extension and utilities for cron-style scheduling in Akka
Web templating engines.
Name
Description
GitHub Activity
scalatags
ScalaTags is a small XML/HTML construction library for Scala.
scalate
Scalate is a Scala based template engine which supports HAML, Mustache and JSP, Erb and Velocity style syntaxes.
twirl
Twirl is Play's default template engine
hepek
Typesafe HTML templates and static site generator in pure Scala
Name
Description
GitHub Activity
bloop
Bloop is a build server and CLI tool to compile, test and run Scala fast from any editor or build tool.
coursier
Pure Scala Artifact Fetching
dregex
dregex is a Java library that implements a regular expression engine using deterministic finite automata (DFA). It supports some Perl-style features and yet retains linear matching time, and also offers set operations.
fast-string-interpolator
Scala macro that generates ultra-fast string interpolators.
fastring
Extremely fast string formatting
gitbucket
A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility
giter8
a command line tool to apply templates defined on GitHub
metals
Scala language server with rich IDE features 🚀
mill
Mill is a fast JVM build tool that supports Java and Scala. 2-3x faster than Gradle and 5-10x faster than Maven for common workflows, Mill aims to make your project’s build process performant, maintainable, and flexible
sbt
sbt, the interactive build tool
scalafix
Refactoring and linting tool for Scala
Scalafmt
Code formatter for Scala
scalariform
Scala source code formatter
scapegoat
Scala compiler plugin for static code analysis
wartremover
Flexible Scala code linting tool
scala2plantuml
Scala2PlantUML generates PlantUML diagrams from Scala code.
Libraries to aid with geospatial calculations and artifacts.
Name
Description
GitHub Activity
geotrellis
GeoTrellis is a geographic data processing engine for high performance applications.
osm4scala
Scala and Spark library focused on reading OpenStreetMap Pbf files.
rtree2d
RTree2D is a 2D immutable R-tree for ultra-fast nearest and intersection queries in plane and spherical coordinates
stac4s
a scala library with primitives to build applications using the SpatioTemporal Asset Catalogs specification
franklin
A STAC/OGC API Features Web Service
DevOps related tools and libraries.
Name
Description
GitHub Activity
skuber
A Scala Kubernetes client library
Nice books, blogs and other resources to learn Scala
Foundations of Functional Programming in Scala - a professional video course with exercises covering covers functional principles, custom IO (effects) and functional design.
Scala Algorithms - a collection of nearly 100 algorithms in pure-functional Scala with test cases, explanations and a web-based IDE. Built with http4s & Scala.js.
Community Members' Blogs
The Scala Logs - Interviewing developers, open source contributors, subject matter experts, and the like to talk about FP, Scala, open source, and their interests.
Scala Love - Podcast about the Scala Programming Language and its community
CoRecursive Interviews - In-depth Interviews with software developers, often on the subject of scala libraries and functional programming.
Scala for Fun & Profit - Interviewing Scala users and companies.