Skip to content
On this page

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) (10 years of Scala.js) (HN)
  • 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.
  • Cask - Scala HTTP micro-framework.
  • http4s-curl - Experimental client for http4s on Scala Native, backed by libcurl.
  • fs2-dom - Idiomatic Cats Effect + FS2 integrations for Web APIs.
  • Scala DOM Types - Scala types for your library to represent HTML tags, attributes, properties and CSS styles.
  • Laminar - Simple, expressive, and safe UI library for Scala.js. (Talk) (Web)
  • Waypoint - Efficient router for Laminar UI Library.
  • Apache Pekko - Build highly concurrent, distributed, and resilient message-driven applications using Java/Scala.
  • Slinky - Write Scala React apps just like you would in ES6.
  • Calico - Build reactive web applications in Scala.js with Cats Effect, FS2, and friends.
  • netty-http4s - Http4s on pure netty.

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.
  • SPL-to-PySpark transpiler
  • ZIO-Schema - Compositional, type-safe schema definitions, which enable auto-derivation of codecs and migrations.
  • Gluten - Spark Plugin to Offload SQL Engine to Native Library.
  • Anorm - Simple data access layer that uses plain SQL to interact with the database and provides an API to parse and transform the resulting datasets.
  • porcupine - Skunk-inspired library for SQLite on JVM, Node.js, and Native.

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.
  • scalaprops - Property based testing library for Scala.
  • Americium - Generation of test case data for Scala and Java, in the spirit of QuickCheck.
  • coulomb - Unit analysis for Scala.
  • MUnit - Scala testing library with actionable errors and extensible APIs.

GraphQL

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

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.
  • scala-torch - Scala bindings for LibTorch.
  • Storch - PyTorch bindings for Scala.

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)
  • GLL Combinators - Parser combinator library based on the GLL algorithm.
  • Nyaya - Random Data Generation and/or Property Testing in Scala & Scala.JS.
  • Shardcake - Sharding and location transparency for Scala.
  • ZIO Compose - Scala DSL to write type-safe programs for distributed computing.
  • feral - Framework for writing serverless functions in Scala with Cats Effect and deploying them to the cloud, targeting both JVM and JavaScript runtimes.
  • scala-uri - Simple scala library for building and parsing URIs.
  • Glass - Modern optic library.
  • Morphling - Cats-based Scala library for free applicative schemas.
  • Kalix Java and Scala SDK
  • Scala Standard Parser Combinator - Parsing for Scala.
  • Airstream - State propagation and event streams with mandatory ownership and no glitches.
  • Scala Debug Adapter - Implementation of the Debug Adapter Protocol for Scala.
  • Featran - Scala feature transformation library for data science and machine learning.
  • cats-parse - Parsing library for the cats ecosystem.
  • avocADO - Safe compile-time parallelization of for-comprehensions for Scala 3.
  • Kyo - High-performance composable effects for Scala 3.
  • ZIO direct - Direct-Style Programming for ZIO.
  • Poppet - Minimal, type-safe RPC Scala library.
  • Dupin - Minimal, idiomatic, customizable validation Scala library.
  • Jam - Incredibly simple DI Scala library.
  • ToFu - Functional programming toolbox.
  • derevo - Multiple instance derivations inside a single macro annotation.
  • Volga - Comprehensions for Arrows and Monoidal categories.
  • Gallia - Schema-aware Scala library for data transformation.
  • dependency - Library to parse and handle Java and Scala dependencies.
  • eff - Eff monad for cats.
  • Choam - Experiments with composable lock-free concurrency.
  • Yin-Yang - Library for deep embedding of DSLs based on Scala macros.
  • ZIO Process - ZIO library for interacting with external processes and command-line programs.
  • Edomata - Production ready event-driven automata for Scala, Scala.js and scala native.
  • Ultraviolet - Scala 3 to GLSL transpiler library.
  • kinesis4cats - Comprehensive Scala library for Kinesis.
  • Systolic Array - DSL for Systolic Arrays.
  • SFML Scala Native - Scala Native binding of the SFML graphic library.
  • otel4s - OpenTelemetry library for Scala based on Cats-Effect.
  • tethys - JSON parsing/writing library for Scala.
  • Decrel - Library for declarative programming using relations between your data.
  • neotype - Friendly newtype library for Scala 3.
  • parboiled2 - Macro-based PEG parser generator for Scala.
  • Extras
  • Twiddles - Micro-library for building effectful protocols.
  • Typelevel Toolkit - Quickstart your next app with the Typelevel Toolkit.
  • REScala - Distributed and reactive programming embedded in OO and FP programs.