Skip to main content

Scala libraries

Cats & ZIO are neat.

Web​

  • blaze - Scala library for building asynchronous pipelines, with a focus on network IO.
  • ZIO HTTP - Scala library to write HTTP apps. Powered by ZIO and netty and aims at being the defacto solution for writing, highly scalable and performant web applications.
  • Http4s - Minimal, idiomatic Scala interface for HTTP services.
  • Tapir - Describe HTTP API endpoints as immutable Scala values. (Docs) (Tapir Stream) (1.0)
  • sttp - Scala HTTP client you always wanted. (Docs)
  • Scalatra - Tiny Scala high-performance, async web framework, inspired by Sinatra. (Web)
  • Scala.js - Scala to JavaScript compiler. (Web)
  • Scala Webapp Utilities
  • Play Framework - High Velocity Web Framework. (Bootstrap Template)
  • ff4s - Purely functional web frontend framework for Scala.js.
  • Tyrian - Elm-inspired Scala UI library for Scala 3.
  • guardrail - Principled code generation from OpenAPI specifications.

CLI​

  • MainArgs - Small, dependency-free library for command line argument parsing in Scala.
  • decline - Composable command-line parser for Scala.
  • zio-cli - Rapidly build powerful command-line applications powered by ZIO.
  • zio-tui - Library for creating interactive terminal user interfaces.

FP​

DB​

  • doobie - Functional JDBC layer for Scala.
  • ScalikeJDBC - Tidy SQL-based DB access library for Scala that naturally wraps JDBC and provides easy-to-use APIs.
  • Skunk - Data access library for Scala + Postgres.
  • Slick - Modern database query and access library for Scala. Allows you to work with stored data almost as if you were using Scala collections. (Web)
  • redis4cats - Redis client built on top of Cats Effect, Fs2 and Lettuce.
  • SQLite4S - Scala Native wrapper of the SQLite C library.
  • Scalding - Scala library that makes it easy to specify Hadoop MapReduce jobs.
  • ProtoQuill - Compile-time Language Integrated Queries for Scala.

Math​

Test​

  • Bloop - Compile, test and run Scala code fast. (Code)
  • Weaver-test - Test framework that runs everything in parallel.
  • ScalaCheck - Property-based testing for Scala. (Web) (Web Code)
  • Test-State - Test stateful stuff statelessly, and reasonably.
  • kallikrein - Scala testing framework for sbt focused on running cats-effect based programs.
  • specs2 - Software Specifications for Scala.

GraphQL​

  • Caliban - Purely functional library for building GraphQL servers and clients in Scala. (Docs)
  • Sangria - Scala GraphQL implementation.
  • Sangria Relay - Sangria Relay Support.

Graphics​

  • Doodle - Compositional vector graphics in Scala / Scala.JS.
  • Minart - Minimal scala library to draw images in a JVM/Javascript/Native canvas.

Error​

  • splain - Scala compiler plugin for more concise errors.

Crypto​

  • bobcats - Cross-platform cryptography (JVM, Node.js, browsers) for the Cats ecosystem.

ML​

  • Noether - Scala Aggregators used for ML Model metrics mo.
  • Lamp - Scala library for deep learning and scientific computing. It features a native CPU and GPU backend and operates on off-heap memory.

Other​

  • sup - Composable, purely functional healthchecks in Scala.
  • Monocle - Optics library for Scala.
  • Skunk - Data access library for Scala + Postgres.
  • Scala STM - Lightweight software transactional memory for Scala, inspired by the STMs in Haskell and Clojure while taking advantage of Scala’s power and performance.
  • Scalaz - Principled Functional Programming in Scala.
  • ZIO - Type-safe, composable library for asynchronous and concurrent programming in Scala. (Web) (Advanced ZIO Workshop) (Articles)
  • ZIO ZMX - Monitoring, Metrics and Diagnostics for ZIO.
  • Matryoshka - Generalized recursion schemes and traversals for Scala.
  • Scrimage - Scala image processing library.
  • Fastring - Extremely fast string formatting.
  • Compute.scala - Scientific computing with N-dimensional arrays.
  • Finatra - Fast, testable, Scala services built on TwitterServer and Finagle.
  • Freestyle - Cohesive & pragmatic framework of FP centric Scala libraries.
  • Deequ - Library built on top of Apache Spark for defining "unit tests for data", which measure data quality in large datasets.
  • Izumi - Ecosystem of independent libraries and frameworks allowing you to significantly increase productivity of your Scala development.
  • Odin - Fast & Functional logger in Scala.
  • Monix - Asynchronous, Reactive Programming for Scala and Scala.js.
  • Coursier - Pure Scala Artifact Fetching. (Web)
  • almond - Scala kernel for Jupyter. (Web)
  • Twitter Util - Bunch of idiomatic, small, general purpose tools.
  • scalameta - Library to read, analyze, transform and generate Scala programs. (Guide)
  • Inox - Solver for higher-order functional programs.
  • Stainless - Verification framework and tool for higher-order Scala programs. (Web) (Talk) (Talk Slides)
  • scodec - Scala combinator library for working with binary data.
  • circe - JSON library for Scala.
  • Ciris - Functional Configurations for Scala.
  • ScalaPy - Allows you to use any Python library from your Scala code with an intuitive API. (Data Science in Scala with ScalaPy - Shadaj Laddad)
  • Treadle - Experimental circuit simulator that executes low Firrtl IR.
  • graalnative4s - Employ Scala for serverless applications.
  • Cats Effect - Purely functional runtime system for Scala.
  • NewType - Scala with no runtime overhead.
  • Monocle - Optics library for Scala. (Docs)
  • refined - Simple refinement types for Scala.
  • uPickle - Simple Scala JSON and Binary (MessagePack) serialization library.
  • LaCasa - Lightweight affine types and object capabilities in Scala.
  • Spotted Leopards - Proof of concept for a cats-like library built using Dotty features.
  • Izumi - Productivity-oriented collection of lightweight fancy stuff for Scala toolchain. (Docs)
  • Libretto - Declarative concurrency and stream processing library for Scala.
  • Algebird - Abstract Algebra for Scala.
  • Natchez - Distributed tracing library for Scala.
  • SWAN - Swift Static Analysis Framework.
  • Chimney - Scala library for boilerplate-free, type-safe data transformations.
  • banana-rdf - Library for RDF, SPARQL and Linked Data technologies in Scala.
  • Scio - Scala API for Apache Beam and Google Cloud Dataflow.
  • MacWire - Lightweight and Nonintrusive Scala Dependency Injection Library.
  • Wire Signals - Small and effective event-handling library for Scala.
  • Papa Carlo - Scala parsing library utilises incremental parsing approach.
  • Avro4s - Avro schema generation and serialization / deserialization for Scala.
  • Vault - Type-safe, persistent storage for values of arbitrary types.
  • cats-retry - Library for retrying actions that can fail.
  • Quill - Compile-time Language Integrated Queries for Scala. (Web)
  • ZIO Optics - Easily modify parts of larger data structures.
  • scala-typed-holes - Scala compiler plugin to emulate the "typed holes" feature of Haskell, Idris, Agda, etc.
  • ScalaCache - Simple caching in Scala.
  • Scaldi - Lightweight Scala Dependency Injection Library.
  • Zinc - Incremental compiler for Scala.
  • zio-webhooks - Microlibrary for reliable and persistent webhook delivery.
  • Iron - Type constraint system for Scala. It allows creating type-level assertions, evaluable at compile time and/or runtime.
  • ECScala - ECS Scala framework.
  • ZIO Akka Cluster
  • Squants - Scala API for Quantities, Units of Measure and Dimensional Analysis.
  • dynamic - Scala library that allows copying a case class using a dynamic property name.
  • crjdt - Conflict-free replicated JSON datatype (CRDT) in Scala.
  • Droste - Recursion library for Scala.
  • Iota - Fast [co]product types with a clean syntax. For Cats & Scalaz.
  • Enumeratum - Type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations.
  • FS2 - Compositional, streaming I/O library for Scala. (Web)
  • Endless - Scala library to describe event sourced entities using tagless-final algebras. (Docs)
  • Akka-Effect - Cats-Effect & Akka interop.
  • Woof - Pure Scala logging library with no reflection.
  • Squid - Type-safe metaprogramming for Scala.
  • fs2-data - Streaming data parsers and manipulation library.
  • Scala JSON Schema
  • Diffson - Scala diff/patch library for JSON.
  • Polyvinyl - Typesafe record types for Scala.
  • newtypes - Macro-free helpers for defining newtypes in Scala, cross-compiled to Scala 3.
  • geny - Provides the geny.Generator data type, the dual to a scala.Iterator that can ensure resource cleanup.
  • Breeze - Numerical processing library for Scala.
  • Scala Yaml - Dependency-free library that allows to work with the YAML.
  • Parsel - Zero-dependency Scala library for working with Python code.
  • ZIO logging - Simple logging for ZIO apps, with correlation, context & pluggable backends out of the box.
  • ZIO Config - ZIO-based library for working with application configuration data.
  • Scribe - Fastest logging library in the world. Built from scratch in Scala and programmatically configurable.
  • Emil - Library for dealing with E-Mail in Scala.
  • futil - Minimal utilities for Scala Futures.
  • Scala Isabelle - Scala library for controlling/interacting with Isabelle.
  • mini-refined - Simple encoding of refinement types in Scala 3.
  • Difflicious - Scala library for readable diffs of values.
  • zio-json - Fast, secure JSON library with tight ZIO integration.
  • Ficus - Lightweight companion to Typesafe config that makes it more Scala-friendly.
  • Colossus - Lightweight I/O framework for building Scala services.
  • Futiles - Missing utils for working with Scala Futures.
  • spray-json - Lightweight, clean and simple JSON implementation in Scala.
  • sconfig - Configuration library written in Scala which is a direct translation of the original widely used Java library.
  • Akka Stream Contrib
  • Jsoniter Scala - Scala macros for compile-time generation of safe and ultra-fast JSON codecs.
  • Staged Program Analyzers - Improving the performance of static analysis by meta-programming/multi-stage programming.
  • Play JSON - Powerful Scala JSON library, originally developed by the Play team.
  • kantan.csv - CSV handling library for Scala.
  • Foursquare Fsq.io - All of Foursquare's open source code in a single repo.
  • Scala-fx - Effects library for Scala 3 that introduces structured concurrency and an abilities system to describe pure functions and programs.
  • DUCT - Scala 3 category theory and functional programming library.
  • OS-Lib - Simple Scala interface to common OS filesystem and subprocess APIs.
  • PureConfig - Scala library for loading configuration files.
  • jsonrpclib - Cross-platform pure-scala JsonRPC library.
  • cats-saga - Purely Functional Transaction Management In Scala With Cats.
  • zio-saga - Purely Functional Transaction Management In Scala With ZIO.
  • Turbolift - Extensible Effect System for Scala 3.
  • Ducktape - Library for boilerplate-less and configurable transformations between case classes/enums (sealed traits) for Scala 3.
  • smithy4s - Tool that generates third-party-free, protocol-agnostic scala code from smithy specifications. (Docs) (Reddit)