Skip to content

Instantly share code, notes, and snippets.

Last active October 28, 2022 22:42
Show Gist options
  • Save clementi/4317c5616df500de42f185921cf48dca to your computer and use it in GitHub Desktop.
Save clementi/4317c5616df500de42f185921cf48dca to your computer and use it in GitHub Desktop.
Scala Libraries and Tools

Scala Libraries and Tools

A curated List of useful or interesting libraries and tools for Scala programming. See also the Scala Toolbox.


Name Description URL
Akka HTTP The Akka HTTP modules implement a full server- and client-side HTTP stack on top of akka-actor and akka-stream.
Akka Stream The purpose is to offer an intuitive and safe way to formulate stream processing setups such that we can then execute them efficiently and with bounded resource usage—no more OutOfMemoryErrors.
Akka Akka is a toolkit for building highly concurrent, distributed, and resilient message-driven applications for Java and Scala
Alpakka The Alpakka project is an open source initiative to implement stream-aware and reactive integration pipelines for Java and Scala.
aws-lambda-scala Writing AWS Lambdas in Scala
Caliban Functional GraphQL library for Scala
case-app Type-level & seamless command-line argument parsing for Scala
cask Cask: a Scala HTTP micro-framework
castor Castor is a lightweight, typed Actor library for Scala and Scala.js
Cats Lightweight, modular, and extensible library for functional programming
Cats Effect The IO Monad for Scala
Cats MTL Provides transformer typeclasses for cats' Monads, Applicatives and Functors.
cats-retry A library for retrying actions that can fail. Designed to work with cats and cats-effect or Monix.
Circe A JSON library for Scala powered by Cats
ciris Functional Configurations for Scala
Clump A library for expressive and efficient service composition
Console4Cats Effect-type agnostic Console I/O for Cats Effect Superseded by Cats Effect 3.x
Cron4s Scala CRON Parser
decline Composable command-line parsing for Scala
Diode Diode was born out of the need of having something similar to Redux or Om for Scala applications.
Dispatch Dispatch is a library for asynchronous HTTP interaction. It provides a Scala vocabulary for Java’s async-http-client.
Doobie A pure functional JDBC layer for Scala and Cats.
enumeratum A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations.
extruder Populate Scala case classes from any data source
FastParse Fast to write, Fast running Parsers in Scala
fetch Simple and Efficient data fetching
finagle Finagle is an extensible RPC system for the JVM, used to construct high-concurrency servers.
Finatra Finatra is a Scala services framework built on top of TwitterServer and Finagle.
finch Scala combinator library for building Finagle HTTP services
fs2 Functional, effectful, concurrent streams for Scala
fs2-blobstore Minimal, idiomatic, stream-based Scala interface for key/value store implementations
hammock Purely functional HTTP client
http4s Typeful, functional, streaming HTTP for Scala.
jawn Jawn is for parsing jay-sawn (JSON)
json4s At this moment there are at least 6 json libraries for scala, not counting the java json libraries. All these libraries have a very similar AST. This project aims to provide a single AST to be used by other scala json libraries.
Kamon Distributed Tracing, Metrics and Context Propagation for applications running on the JVM
kittens Automatic type class derivation for Cats
lagom The opinionated microservices framework for moving away from the monolith
Libra Libra is a dimensional analysis library based on shapeless, spire and singleton-ops. It contains out of the box support for SI units for all numeric types.
Lift Lift is the most powerful, most secure web framework available today.
log4cats log4cats attempts to make referentially transparent logging a reality.
log4s High-performance SLF4J wrapper for Scala.
macwire Lightweight and nonintrusive Scala dependency injection library
mainargs A small, convenient, dependency-free library for command-line argument parsing in Scala
Modux A microservice server for Scala
Monix Monix is a high-performance Scala / Scala.js library for composing asynchronous, event-based programs.
Monocle Access and transform immutable data with lenses
Mu Mu is a purely functional library for building microservices
munit Scala testing library with actionable errors and extensible APIs
Neutron Neutron is a purely functional Apache Pulsar client for Scala, build on top of fs2 and the Java client for Pulsar.
optparse A simple but powerful Scala command line parser
oslib OS-Lib is a simple, flexible, high-performance Scala interface to common OS filesystem and subprocess APIs
phantom Schema safe, type-safe, reactive Scala driver for Cassandra/Datastax Enterprise
play The High Velocity Web Framework For Java and Scala
PureConfig A boilerplate-free library for loading configuration files
quicklens Modify deeply nested fields in case classes using developer-friendly syntax
Quill Free/Libre Compile-time Language Integrated Queries for Scala
requests-scala A Scala port of the popular Python Requests HTTP client: flexible, intuitive, and straightforward to use.
retry because you should never give up, at least not on the first try
rho A self documenting DSL built on http4s
rng Pure-functional random value generation
Sangria Scala GraphQL implementation
scaffeine Thin Scala wrapper for Caffeine (ben-manes/caffeine)
Scala Colog Cross-platform pure functional logging library for Scala. Integrates with well known JVM logging frameworks and can also be used standalone in ScalaJS or Scala Native.
Scala on Android Write Android apps in Scala!
scala-parser-combinators simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module
ScalaCheck ScalaCheck is a library written in Scala and used for automated property-based testing of Scala or Java programs.
scalactic Scalactic is a small library of utilities related to quality and functional programming that can help you keep code clear and correct.
scalaj-http Simple scala wrapper for HttpURLConnection. OAuth included.
scalatags ScalaTags is a small, fast XML/HTML/CSS construction library for Scala
scalatest ScalaTest is designed to increase your team's productivity through simple, clear tests and executable specifications that improve both code and communication.
scalaxb scalaxb is an XML data-binding tool for Scala that supports W3C XML Schema (xsd) and Web Services Description Language (wsdl) as the input file.
scalaz An extension to the core scala library. (Functional programming, like Cats.)
scallop a simple Scala CLI parsing library
scodec Scala combinator library for working with binary data
scopt command line options parsing for Scala
shapeless Generic programming for Scala
singleton-ops Operations for primitive and String singleton types
Slick Functional Relational Mapping for Scala
Spire Powerful new number types and numeric abstractions for Scala.
Squants The Scala API for Quantities, Units of Measure and Dimensional Analysis
sttp The Scala HTTP client you always wanted!
tapir Typed API descriptions
Twirl Twirl is Play's default template engine
TwitterServer TwitterServer is a library defining a template from which servers at Twitter are built.
unfiltered Unfiltered is a toolkit for servicing HTTP requests in Scala.
uPickle uPickle (pronounced micro-pickle) is a lightweight JSON and binary (MessagePack) serialization library for Scala.
utest A simple testing framework for Scala
zio Type-safe, composable asynchronous and concurrent programming for Scala


Name Description URL
ammonite Ammonite lets you use the Scala language for scripting purposes: in the REPL, as scripts, as a library to use in existing projects, or as a standalone systems shell.
Bazel Build and test software of any size, quickly and reliably
Bloop Build and test Scala code of any size quickly, from any editor, from any build tool
cbt CBT - fun, fast, intuitive, compositional, statically checked builds written in Scala
coursier Pure Scala artifact fetching
Fury Fury is a fledgling open-source build tool for Scala, with unique features for the ongoing maintenance of builds within a continually-evolving ecosystem.
giter8 a command line tool to apply templates defined on GitHub
JitPack Publish your JVM and Android libraries
mdoc Typechecked markdown documentation for Scala
Metals Scala language server with rich IDE features
mill Your shiny new Java/Scala build tool!
Pants Pants is a build system designed for codebases that: (1) Are large and/or growing rapidly. (2) Consist of many subprojects that share a significant amount of code. (3) Have complex dependencies on third-party libraries. (4) Use a variety of languages, code generators and frameworks.
sbt-assembly Deploy fat JARs. Restart processes.
sbt-buildinfo I know this because build.sbt knows this.
sbt-dependency-graph sbt plugin to create a dependency graph for your project
sbt-microsites An sbt plugin to create awesome microsites for your project
sbt-scoverage sbt plugin for scoverage
Scala Clippy Better compiler errors and suggestions
scala-steward A bot that helps you keep your Scala projects up-to-date
Scaladex The Scala Library Index
ScalaFiddle ScalaFiddle is an online playground for creating, sharing and embedding Scala fiddles (little Scala programs that run directly in your browser).
scalafmt Code formatter for Scala
scalariform Scalariform is a code formatter for Scala 2.8+.
scastie Scastie is an interactive playground for Scala.
Seed Seed is a user-friendly, fast and flexible build tool for Scala projects.
splain better implicit errors for scala
TwoTails A Scala compiler plugin for mutual tail recursion
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment