"createdAt" : " 2014-07-08T08:13:52Z " ,
"defaultBranch" : " master " ,
"description" : " A community driven list of useful Scala libraries, frameworks and software. " ,
"fullName" : " lauris/awesome-scala " ,
"homepage" : " https://lauris.github.io/scala/2014/08/27/awesome-scala/ " ,
"pushedAt" : " 2024-09-20T08:21:10Z " ,
"updatedAt" : " 2025-11-24T23:03:03Z " ,
"url" : " https://github.com/lauris/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.
[Learning Scala]!(#learning-scala)
[Projects]!(#projects)
[Android]!(#android)
[Archive and Compression]!(#archive-and-compression)
[Artificial Intelligence]!(#artificial-intelligence)
[Authentication]!(#authentication)
[Authorization]!(#authorization)
[Big Data]!(#big-data)
[Command Line Interfaces]!(#command-line-interfaces)
[Cryptography]!(#cryptography)
[CSV]!(#csv)
[Data Binding and Validation]!(#data-binding-and-validation)
[Database]!(#database)
[DevOps]!(#devops)
[Distributed Systems]!(#distributed-systems)
[Extensions]!(#extensions)
[Functional Reactive Programming]!(#functional-reactive-programming)
[Geospatial]!(#geospatial)
[Graphical User Interfaces]!(#graphical-user-interfaces)
[HTTP]!(#http)
[i18n]!(#i18n)
[Image processing and image analysis]!(#image-processing-and-image-analysis)
[JavaScript]!(#javascript)
[JSON]!(#json)
[Markdown]!(#markdown)
[Metrics and Monitoring]!(#metrics-and-monitoring)
[Misc]!(#misc)
[Modularization and Dependency Injection]!(#modularization-and-dependency-injection)
[Parsing]!(#parsing)
[Reactive Web Frameworks]!(#reactive-web-frameworks)
[Sbt plugins]!(#sbt-plugins)
[Science and Data Analysis]!(#science-and-data-analysis)
[Scheduling]!(#scheduling)
[Semantic Web]!(#semantic-web)
[Serialization]!(#serialization)
[Templating]!(#templating)
[Testing]!(#testing)
[Tools]!(#tools)
[Web Frameworks]!(#web-frameworks)
[XML / HTML]!(#xml—html)
[YAML]!(#yaml)
[Learning Scala]!(#learning-scala)
[Books]!(#books)
[Exercises]!(#exercises)
[Tutorials and courses]!(#tutorials-and-courses)
[Commercial courses]!(#commercial-courses)
[Community members’ blogs]!(#community-members-blogs)
[Company Blogs]!(#company-blogs)
[Podcasts]!(#podcasts)
[Contributing]!(#contributing)
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 :leaves: 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
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
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
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 :cake: 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
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
Name Description GitHub Activity
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 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 withFilters 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). :rainbow: 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.
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.