Awesome Scala Awesome

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.

Contributing

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.

Table of Contents

Archive and Compression

Name | Description | GitHub Activity ---- | ----------- | --------------- SevenZ4S | SevenZip library for Scala, easy to use. | GitHub stars GitHub commit activity

Artificial Intelligence

Name | Description | GitHub Activity ---- | ----------- | --------------- cilib | Typesafe, purely functional Computational Intelligence | GitHub stars GitHub commit activity

Database

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. | GitHub stars GitHub commit activity anorm | The Anorm database library | GitHub stars GitHub commit activity casbah | Casbah is now officially end-of-life (EOL). | GitHub stars GitHub commit activity clickhouse-scala-client | Clickhouse Scala Client with Reactive Streams support | GitHub stars GitHub commit activity couchbase-jvm-clients | The Couchbase Monorepo for JVM Clients: Java, Scala, io-core… | GitHub stars GitHub commit activity couchdb-scala | A purely functional Scala client for CouchDB | GitHub stars GitHub commit activity doobie | Functional JDBC layer for Scala. | GitHub stars GitHub commit activity elastic4s | Elasticsearch Scala Client - Reactive, Non Blocking, Type Safe, HTTP Client | GitHub stars GitHub commit activity etcd4s | Scala etcd client implementing V3 APIs | GitHub stars GitHub commit activity finagle-postgres | PostgreSQL protocol support for Finagle | GitHub stars GitHub commit activity laserdisc | A Future-free Fs2 native pure FP Redis client | GitHub stars GitHub commit activity mysql-binlog-stream | None | GitHub stars GitHub commit activity longevity | A Persistence Framework for Scala and NoSQL | GitHub stars GitHub commit activity lucene4s | Light-weight convenience wrapper around Lucene to simplify complex tasks and add Scala sugar. | GitHub stars GitHub commit activity mapperdao | A Scala ORM library | GitHub stars GitHub commit activity morpheus | Reactive type-safe Scala driver for SQL databases | GitHub stars GitHub commit activity neotypes | Scala lightweight, type-safe, asynchronous driver for neo4j | GitHub stars GitHub commit activity phantom | Schema safe, type-safe, reactive Scala driver for Cassandra/Datastax Enterprise | GitHub stars GitHub commit activity pulsar4s | Idiomatic, typesafe, and reactive Scala client for Apache Pulsar | GitHub stars GitHub commit activity zio-quill | Compile-time Language Integrated Queries for Scala | GitHub stars GitHub commit activity reactivecouchbase-rs-core | New ReactiveCouchbase driver using reactive-streams | GitHub stars GitHub commit activity ReactiveMongo | :leaves: Non-blocking, Reactive MongoDB Driver for Scala | GitHub stars GitHub commit activity rediscala | Non-blocking, Reactive Redis driver for Scala (with Sentinel support) | GitHub stars GitHub commit activity relate | Performant database access in Scala | GitHub stars GitHub commit activity salat | Salat is a simple serialization library for case classes. | GitHub stars GitHub commit activity sangria | Scala GraphQL implementation | GitHub stars GitHub commit activity scala-activerecord | ActiveRecord-like ORM library for Scala | GitHub stars GitHub commit activity scala-forklift | Type-safe data migration tool for Slick, Git and beyond. | GitHub stars GitHub commit activity scala-redis | A scala library for connecting to a redis server, or a cluster of redis nodes using consistent hashing on the client side. | GitHub stars GitHub commit activity scala-sql | scala SQL api | GitHub stars GitHub commit activity scalarelational | Type-Safe framework for defining, modifying, and querying SQL databases | GitHub stars GitHub commit activity scalikejdbc | A tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs. | GitHub stars GitHub commit activity scanamo | Simpler DynamoDB access for Scala | GitHub stars GitHub commit activity scredis | Non-blocking, ultra-fast Scala Redis client built on top of Akka IO, used in production at Livestream | GitHub stars GitHub commit activity scruid | Scala + Druid: Scruid. A library that allows you to compose queries in Scala, and parse the result back into typesafe classes. | GitHub stars GitHub commit activity shade | Memcached client for Scala | GitHub stars GitHub commit activity slick | Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala | GitHub stars GitHub commit activity slick-pg | Slick extensions for PostgreSQL | GitHub stars GitHub commit activity squeryl | A Scala DSL for talking with databases with minimum verbosity and maximum type safety | GitHub stars GitHub commit activity molecule | Non-blocking asynchronous domain-customizable database query language for Scala and Scala.js against the Datomic database. | GitHub stars GitHub commit activity zio-redis | A ZIO-based redis client | GitHub stars GitHub commit activity skunk | A data access library for Scala + Postgres. | GitHub stars GitHub commit activity kvs | Highly available distributed strong eventual consistent and sequentially consistent storage with feeds and search | GitHub stars GitHub commit activity

Messaging

Name | Description | GitHub Activity ---- | ----------- | --------------- op-rabbit | The Opinionated RabbitMQ Library for Scala and Akka | GitHub stars GitHub commit 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 | GitHub stars GitHub commit activity

Web Frameworks

Scala frameworks for web development.

Name | Description | GitHub Activity ---- | ----------- | --------------- analogweb-scala | Tiny High Performance HTTP Server for Scala | GitHub stars GitHub commit activity chaos | A lightweight framework for writing REST services in Scala. | GitHub stars GitHub commit activity cask | Cask: a Scala HTTP micro-framework | GitHub stars GitHub commit activity colossus | I/O and Microservice library for Scala | GitHub stars GitHub commit activity finatra | Fast, testable, Scala services built on TwitterServer and Finagle | GitHub stars GitHub commit activity framework | Lift Framework | GitHub stars GitHub commit activity peregrine | Async lightweight Scala web framework | GitHub stars GitHub commit activity playframework | Play Framework | GitHub stars GitHub commit activity pagelets | A module for the Play Framework to build highly modular applications | GitHub stars GitHub commit activity reactive | A simple FRP library and a web UI framework built on it | GitHub stars GitHub commit activity scalajs-react | Facebook's React on Scala.JS | GitHub stars GitHub commit activity scalatra | Tiny Scala high-performance, async web framework, inspired by Sinatra | GitHub stars GitHub commit activity skinny-framework | :monorail: "Scala on Rails" - A full-stack web app framework for rapid development in Scala | GitHub stars GitHub commit activity unfiltered | A toolkit for servicing HTTP requests in Scala | GitHub stars GitHub commit activity xitrum | Async and clustered Scala web framework and HTTP(S) server | GitHub stars GitHub commit activity youi | Next generation user interface and application development in Scala and Scala.js for web, mobile, and desktop. | GitHub stars GitHub commit activity

Reactive Web Frameworks

Scala libraries for Reactive Web development

Name | Description | GitHub Activity ---- | ----------- | --------------- Binding.scala | Reactive data-binding for Scala | GitHub stars GitHub commit activity korolev | Single Page Applications running on the server side. | GitHub stars GitHub commit activity udash-core | Scala framework for building beautiful and maintainable web applications. | GitHub stars GitHub commit activity vertx-lang-scala | Vert.x for Scala | GitHub stars GitHub commit activity

Data Binding and Validation

Scala libraries for data binding and validation

Name | Description | GitHub Activity ---- | ----------- | --------------- accord | Accord: A sane validation library for Scala | GitHub stars GitHub commit activity dupin | Minimal, idiomatic, customizable validation Scala library. | GitHub stars GitHub commit activity octopus | Scala library for boilerplate-free validation | GitHub stars GitHub commit activity veto | If you don't agree with the data | GitHub stars GitHub commit activity fields | Scala validation library | GitHub stars GitHub commit activity

i18n

Scala libraries for i18n.

Name | Description | GitHub Activity ---- | ----------- | --------------- scala-xgettext | Scala compiler plugin that acts like GNU xgettext command to extract i18n strings in Scala source code files to Gettext .po file | GitHub stars GitHub commit activity scaposer | GNU Gettext .po file loader for Scala | GitHub stars GitHub commit activity

Authentication

Libraries for implementing authentications schemes.

Name | Description | GitHub Activity ---- | ----------- | --------------- akka-http-session | Web & mobile client-side akka-http sessions, with optional JWT support | GitHub stars GitHub commit activity aws-request-signer | Scala library to sign HTTP requests to AWS services. | GitHub stars GitHub commit activity OAuth2-mock-play | An implementation of an OAuth2 server designed for mocking/testing | GitHub stars GitHub commit activity play-googleauth | Simple play module for authenticating against Google | GitHub stars GitHub commit activity play-pac4j | Security library for Play framework 2 in Java and Scala: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT... | GitHub stars GitHub commit activity play2-auth | Play2.x Authentication and Authorization module | GitHub stars GitHub commit activity scala-oauth2-provider | OAuth 2.0 server-side implementation written in Scala | GitHub stars GitHub commit activity securesocial | A module that provides OAuth, OAuth2 and OpenID authentication for Play Framework applications | GitHub stars GitHub commit activity

Cryptography

Cryptography and Encryption Libraries.

Name | Description | GitHub Activity ---- | ----------- | --------------- scrypto | Cryptographic primitives for Scala | GitHub stars GitHub commit activity tsec | Type-safe general-cryptography library - https://jmcardon.github.io/tsec/ | GitHub stars GitHub commit activity jose | Extensible JOSE library for Scala | GitHub stars GitHub commit activity

Testing

Libraries for code testing.

Name | Description | GitHub Activity ---- | ----------- | --------------- cornichon | Scala DSL for testing HTTP JSON API | GitHub stars GitHub commit activity gatling | Modern Load Testing as Code | GitHub stars GitHub commit activity minitest | The super light testing library for Scala and Scala.js | GitHub stars GitHub commit activity mockito-scala | Mockito for Scala language | GitHub stars GitHub commit activity munit | Scala testing library with actionable errors and extensible APIs | GitHub stars GitHub commit activity scalacheck | Property-based testing for Scala | GitHub stars GitHub commit activity scalameter | Microbenchmarking and performance regression testing framework for the JVM platform. | GitHub stars GitHub commit activity ScalaMock | Native Scala mocking framework | GitHub stars GitHub commit activity scalaprops | property based testing library for Scala | GitHub stars GitHub commit activity scalatest | A testing tool for Scala and Java developers | GitHub stars GitHub commit activity scalive | Connect a Scala REPL to running JVM processes without any prior setup | GitHub stars GitHub commit activity specs2 | Software Specifications for Scala | GitHub stars GitHub commit activity stryker4s | Mutation testing for Scala | GitHub stars GitHub commit activity weaver-test | A test framework that runs everything in parallel. | GitHub stars GitHub commit activity testcontainers-scala | Docker containers for testing in scala | GitHub stars GitHub commit activity utest | A simple testing framework for Scala | GitHub stars GitHub commit activity

JSON

Libraries for work with json.

Name | Description | GitHub Activity ---- | ----------- | --------------- argonaut | Purely functional JSON parser and library in scala. | GitHub stars GitHub commit activity borer | Efficient CBOR and JSON (de)serialization in Scala | GitHub stars GitHub commit activity circe | Yet another JSON library for Scala | GitHub stars GitHub commit activity diffson | A scala diff/patch library for Json | GitHub stars GitHub commit activity jackson-module-scala | Add-on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes | GitHub stars GitHub commit activity jawn | Jawn is for parsing jay-sawn (JSON) | GitHub stars GitHub commit activity json4s | JSON library | GitHub stars GitHub commit activity jsoniter-scala | Scala macros for compile-time generation of safe and ultra-fast JSON codecs | GitHub stars GitHub commit activity json | Persist-Json, a Fast Json Parser Written in Scala | GitHub stars GitHub commit activity ninny-json | JSON typeclasses that know the difference between null and absent fields | GitHub stars GitHub commit activity play-json | The Play JSON library | GitHub stars GitHub commit activity pushka | ABANDONED Pure Scala serialization library with annotations | GitHub stars GitHub commit activity sbt-json | sbt plugin that generates Scala case classes for easy, statically typed and implicit access of JSON data e.g. from API responses | GitHub stars GitHub commit activity scala-jsonapi | Scala support library for integrating the JSON API spec with Spray, Play! or Circe | GitHub stars GitHub commit activity ScalaJack | Fast JSON parser/generator for Scala | GitHub stars GitHub commit activity spray-json | A lightweight, clean and simple JSON implementation in Scala | GitHub stars GitHub commit activity zio-json | Fast, secure JSON library with tight ZIO integration. | GitHub stars GitHub commit activity

YAML

Libraries for work with YAML.

Name | Description | GitHub Activity ---- | ----------- | --------------- moultingyaml | Scala wrapper for SnakeYAML | GitHub stars GitHub commit activity

CSV

Libraries for work with CSV.

Name | Description | GitHub Activity ---- | ----------- | --------------- fm-flatfile | Scala Library for Reading Flat File Data (CSV/TSV/XLS/XLSX) | GitHub stars GitHub commit activity kantan.csv | CSV handling library for Scala | GitHub stars GitHub commit activity scala-csv | CSV Reader/Writer for Scala | GitHub stars GitHub commit activity spata | Functional, stream-based CSV processor for Scala | GitHub stars GitHub commit activity

Serialization

Libraries for serializing and deserializing data for storage or transport.

Name | Description | GitHub Activity ---- | ----------- | --------------- avro-codegen | Scala code generator for Avro schemas. | GitHub stars GitHub commit activity borer | Efficient CBOR and JSON (de)serialization in Scala | GitHub stars GitHub commit activity avro4s | Avro schema generation and serialization / deserialization for Scala | GitHub stars GitHub commit activity chill | Scala extensions for the Kryo serialization library | GitHub stars GitHub commit activity msgpack-scala | MessagePack serializer implementation for Scala / msgpack.org[Scala] | GitHub stars GitHub commit activity ScalaPB | Protocol buffer compiler for Scala. | GitHub stars GitHub commit activity scodec | Scala combinator library for working with binary data | GitHub stars GitHub commit activity scrooge | A Thrift parser/generator | GitHub stars GitHub commit activity upickle | uPickle: a simple, fast, dependency-free JSON & Binary (MessagePack) serialization library for Scala | GitHub stars GitHub commit activity proto | Lightweight and fast serialization library for Scala 2/3 based on Protocol Buffers with macros | GitHub stars GitHub commit activity

Science and Data Analysis

Libraries for scientific computing, data analysis and numerical processing.

Name | Description | GitHub Activity ---- | ----------- | --------------- algebird | Abstract Algebra for Scala | GitHub stars GitHub commit activity axle | Axle Domain Specific Language for Scientific Cloud Computing and Visualization | GitHub stars GitHub commit activity BigDL | Building Large-Scale AI Applications for Distributed Big Data | GitHub stars GitHub commit activity breeze | Breeze is a numerical processing library for Scala. | GitHub stars GitHub commit activity Clustering4Ever | C4E, a JVM friendly library written in Scala for both local and distributed (Spark) Clustering. | GitHub stars GitHub commit activity doddle-model | :cake: doddle-model: machine learning in Scala. | GitHub stars GitHub commit activity figaro | Figaro Programming Language and Core Libraries | GitHub stars GitHub commit activity libra | A dimensional analysis library based on dependent types | GitHub stars GitHub commit activity LoMRF | LoMRF is an open-source implementation of Markov Logic Networks | GitHub stars GitHub commit activity mgo | Purely functional genetic algorithms for multi-objective optimisation | GitHub stars GitHub commit activity MLLib | Machine Learning framework for Spark | NDScala | N-dimensional arrays in Scala 3. Think NumPy ndarray, but type-safe over shapes, array/axis labels & numeric data types | GitHub stars GitHub commit activity numsca | numsca is numpy for scala | GitHub stars GitHub commit activity onnx-scala | An ONNX (Open Neural Network eXchange) API and backend for typeful, functional deep learning in Scala 3 | GitHub stars GitHub commit activity openmole | Workflow engine for exploration of simulation models using high throughput computing | GitHub stars GitHub commit activity Optimus | Optimus is a mathematical programming library for Scala. | GitHub stars GitHub commit activity OscaR | a Scala toolkit for solving Operations Research problems | rings | Rings: efficient JVM library for polynomial rings | GitHub stars GitHub commit activity smile | Statistical Machine Intelligence & Learning Engine | GitHub stars GitHub commit activity spark-notebook | Interactive and Reactive Data Science using Scala and Spark. | GitHub stars GitHub commit activity spire | Powerful new number types and numeric abstractions for Scala. | GitHub stars GitHub commit activity squants | The Scala API for Quantities, Units of Measure and Dimensional Analysis | GitHub stars GitHub commit activity Synapses | A group of neural-network libraries for functional and mainstream languages | GitHub stars GitHub commit activity tensorflow_scala | TensorFlow API for the Scala Programming Language | GitHub stars GitHub commit activity zeppelin | Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. | GitHub stars GitHub commit activity spark-nlp | State of the Art Natural Language Processing | GitHub stars GitHub commit activity

Big Data

Name | Description | GitHub Activity ---- | ----------- | --------------- BIDMach | CPU and GPU-accelerated Machine Learning Library | GitHub stars GitHub commit activity flink | Apache Flink | GitHub stars GitHub commit activity gridscale | Scala library for accessing various file, batch systems, job schedulers and grid middlewares. | GitHub stars GitHub commit activity kafka | Mirror of Apache Kafka | GitHub stars GitHub commit activity alpakka-kafka | Alpakka Kafka connector - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka. | GitHub stars GitHub commit activity scalding | A Scala API for Cascading | GitHub stars GitHub commit activity schemer | Schema registry for CSV, TSV, JSON, AVRO and Parquet schema. Supports schema inference and GraphQL API. | GitHub stars GitHub commit activity scio | A Scala API for Apache Beam and Google Cloud Dataflow. | GitHub stars GitHub commit activity 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 | GitHub stars GitHub commit activity sparkplug | Spark package to "plug" holes in data using SQL based rules ⚡️ 🔌 | GitHub stars GitHub commit activity sparta | Real Time Analytics and Data Pipelines based on Spark Streaming | GitHub stars GitHub commit activity summingbird | Streaming MapReduce with Scalding and Storm | GitHub stars GitHub commit activity Vegas | The missing MatPlotLib for Scala + Spark | GitHub stars GitHub commit activity gallia-core | A schema-aware Scala library for data transformation | GitHub stars GitHub commit activity

Command Line Interfaces

Libraries for creation of command line interfaces

Name | Description | GitHub Activity ---- | ----------- | --------------- clist | Command Line Interface Scala Toolkit | GitHub stars GitHub commit activity decline | A composable command-line parser for Scala. | GitHub stars GitHub commit activity mainargs | A small, convenient, dependency-free library for command-line argument parsing in Scala | GitHub stars GitHub commit activity scallop | a simple Scala CLI parsing library | GitHub stars GitHub commit activity scopt | command line options parsing for Scala | GitHub stars GitHub commit activity

Image processing and image analysis

2D and 3D image processing and image analysis

Name | Description | GitHub Activity ---- | ----------- | --------------- scala-phash | Image comparison by hash codes | GitHub stars GitHub commit activity scalismo | Scalable Image Analysis and Shape Modelling | GitHub stars GitHub commit activity scrimage | Java, Scala and Kotlin image processing library | GitHub stars GitHub commit activity

Sound processing and music

Name | Description | GitHub Activity ---- | ----------- | --------------- Chromaprint.scala | Chromaprint/AcoustID audio fingerprinting for the JVM | GitHub stars GitHub commit activity ScalaCollider | A Scala sound synthesis library based on SuperCollider. | GitHub stars GitHub commit activity

Functional Reactive Programming

Event streams, signals, observables, etc.

Name | Description | GitHub Activity ---- | ----------- | --------------- fs2 | Compositional, streaming I/O library for Scala | GitHub stars GitHub commit activity iteratee | Iteratees for Cats | GitHub stars GitHub commit activity monix | Asynchronous, Reactive Programming for Scala and Scala.js. | GitHub stars GitHub commit activity reactors | A concurrent reactive programming framework. | GitHub stars GitHub commit activity reactor-scala-extensions | A scala extension for Project Reactor's Flux and Mono | GitHub stars GitHub commit activity REScala | REScala - reactive programming in OO applications | GitHub stars GitHub commit activity RxScala | RxScala – Reactive Extensions for Scala – a library for composing asynchronous and event-based programs using observable sequences | GitHub stars GitHub commit activity scala.rx | An experimental library for Functional Reactive Programming in Scala | GitHub stars GitHub commit activity zio | ZIO — A type-safe, composable library for async and concurrent programming in Scala | GitHub stars GitHub commit activity SynapseGrid | SynapseGrid is a framework for constructing dynamic low latency data flow systems. | GitHub stars GitHub commit activity vertx-lang-scala | Vert.x for Scala | GitHub stars GitHub commit activity wire-signals | A small and effective event-handling library for Scala | GitHub stars GitHub commit activity

Modularization and Dependency Injection

Modularization of applications, dependency injection, etc.

Name | Description | GitHub Activity ---- | ----------- | --------------- airframe | Essential Building Blocks for Scala | GitHub stars GitHub commit activity izumi | Productivity-oriented collection of lightweight fancy stuff for Scala toolchain | GitHub stars GitHub commit activity macwire | Lightweight and Nonintrusive Scala Dependency Injection Library | GitHub stars GitHub commit activity scala-guice | Scala extensions for Google Guice | GitHub stars GitHub commit activity scaldi | Lightweight Scala Dependency Injection Library | GitHub stars GitHub commit activity sclasner | Scala classpath scanner | GitHub stars GitHub commit activity subcut | Scala Uniquely Bound Classes Under Traits | GitHub stars GitHub commit activity jam | Incredibly simple DI Scala library. | GitHub stars GitHub commit activity

Distributed Systems

Libraries and frameworks for writing distributed applications.

Name | Description | GitHub Activity ---- | ----------- | --------------- akka | Build highly concurrent, distributed, and resilient message-driven applications on the JVM | GitHub stars GitHub commit activity akka-tracing | A distributed tracing extension for Akka. Provides integration with Play framework, Spray and Akka HTTP. | GitHub stars GitHub commit activity annette | Platform to build distributed, scalable, enterprise-wide business applications | GitHub stars GitHub commit activity curiodb | Distributed NoSQL Database | GitHub stars GitHub commit activity finagle | A fault tolerant, protocol-agnostic RPC system | GitHub stars GitHub commit activity glokka | Library to register and lookup actors by names in an Akka cluster | GitHub stars GitHub commit activity lagom | Reactive Microservices for the JVM | GitHub stars GitHub commit activity parapet | A purely functional library to build distributed and event-driven systems | GitHub stars GitHub commit activity poppet | Minimal, type-safe RPC Scala library. | GitHub stars GitHub commit activity reactors | A foundational framework for distributed programming. | GitHub stars GitHub commit activity

Extensions

Scala extensions.

Name | Description | GitHub Activity ---- | ----------- | --------------- Ammonite | Scala Scripting | GitHub stars GitHub commit activity better-files | Simple, safe and intuitive Scala I/O | GitHub stars GitHub commit activity blindsight | Blindsight is a Scala logging API with DSL based structured logging, fluent logging, semantic logging, flow logging, and context aware logging. | GitHub stars GitHub commit activity cassovary | Cassovary is a simple big graph processing library for the JVM | GitHub stars GitHub commit activity cats | Lightweight, modular, and extensible library for functional programming. | GitHub stars GitHub commit activity chimney | Scala library for boilerplate-free, type-safe data transformations | GitHub stars GitHub commit activity chronoscala | A JSR-310 port of nscala_time | GitHub stars GitHub commit activity Dsl.scala | A framework to create embedded Domain-Specific Languages in Scala | GitHub stars GitHub commit activity each | A macro library that converts native imperative syntax to scalaz's monadic expressions | GitHub stars GitHub commit activity eff | Eff monad for cats - https://atnos-org.github.io/eff | GitHub stars GitHub commit activity enableIf.scala | A library that toggles Scala code at compile-time, like #if in C/C++ | GitHub stars GitHub commit activity enumeratum | A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations. | GitHub stars GitHub commit activity Freasy-Monad | Easy way to create Free Monad using Scala macros with first-class Intellij support. | GitHub stars GitHub commit activity freedsl | Practical effect composition library based on abstract wrapping type and the free monad | GitHub stars GitHub commit activity freestyle | A cohesive & pragmatic framework of FP centric Scala libraries | GitHub stars GitHub commit activity hamsters | A mini Scala utility library | GitHub stars GitHub commit activity lamma | Lamma schedule generator for Scala is a professional schedule generation library for periodic schedules like fixed income coupon payment, equity deravitive fixing date generation etc. | GitHub stars GitHub commit activity larray | Large off-heap arrays and mmap files for Scala and Java | GitHub stars GitHub commit activity log4s | High-performance SLF4J wrapper for Scala. | GitHub stars GitHub commit activity izumi | Productivity-oriented collection of lightweight fancy stuff for Scala toolchain | GitHub stars GitHub commit activity Monocle | Optics library for Scala | GitHub stars GitHub commit activity nscala-time | A new Scala wrapper for Joda Time based on scala-time | GitHub stars GitHub commit activity quicklens | Modify deeply nested case class fields | GitHub stars GitHub commit activity scala-records | Labeled records for Scala based on structural refinement types and macros. | GitHub stars GitHub commit activity refined | Refinement types for Scala | GitHub stars GitHub commit activity scala-async | An asynchronous programming facility for Scala | GitHub stars GitHub commit activity 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. | GitHub stars GitHub commit activity scala-logging | Convenient and performant logging library for Scala wrapping SLF4J. | GitHub stars GitHub commit activity scalameta | Library to read, analyze, transform and generate Scala programs | GitHub stars GitHub commit activity Scalactic | Small library of utilities related to quality that helps keeping code clear and correct. | scalaz | Principled Functional Programming in Scala | GitHub stars GitHub commit activity scribe | The fastest logging library in the world. Built from scratch in Scala and programmatically configurable. | GitHub stars GitHub commit activity shapeless | Generic programming for Scala | GitHub stars GitHub commit activity simulacrum | First class syntax support for type classes in Scala | GitHub stars GitHub commit activity squid | Squid – type-safe metaprogramming and compilation framework for Scala | GitHub stars GitHub commit activity tinylog | tinylog is a lightweight logging framework for Java, Kotlin, Scala, and Android | GitHub stars GitHub commit activity util | Wonderful reusable code from Twitter | GitHub stars GitHub commit activity

Misc

Projects that don't fit into any specific category.

Name | Description | GitHub Activity ---- | ----------- | --------------- Agora | Library of vote-counting algorithms for elections. | Ammonite | Scala Scripting | GitHub stars GitHub commit activity aws4s | Non-blocking AWS SDK for Scala exposing strongly-typed APIs built on top of http4s, fs2 and cats | GitHub stars GitHub commit activity bootzooka | Simple project to quickly start developing a Scala-based microservice or web application, without the need to write login, user registration etc. | GitHub stars GitHub commit activity eclair | A scala implementation of the Lightning Network. | GitHub stars GitHub commit activity fansi | Scala/Scala.js library for manipulating Fancy Ansi colored strings | GitHub stars GitHub commit activity figlet4s | ASCII-art banners in Scala | GitHub stars GitHub commit activity fs2-aws | fs2 utilities to interact with AWS | GitHub stars GitHub commit activity google4s | A lean, functional library for Google Cloud Services in Scala | GitHub stars GitHub commit activity google-api-scala | This API is a wrapper for the google java libraries. Currently mapping Admin Directory, Drive, and Calendar. | GitHub stars GitHub commit activity mailgun4s | Mailgun API implementation in Scala | GitHub stars GitHub commit activity managerial | A zero-dependency Scala library for managing resources monadically | GitHub stars GitHub commit activity media4s | Scala command-line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media. | GitHub stars GitHub commit activity miniboxing-plugin | Miniboxing is a program transformation that improves the performance of Scala generics when used with primitive types. It can speed up generic collections by factors between 1.5x and 22x, while maintaining bytecode duplication to a minimum. You can easily add miniboxing to your sbt project: | GitHub stars GitHub commit activity ostinato | A chess library that runs on the server (Scala) and on the browser (ScalaJS). | GitHub stars GitHub commit activity play-swagger | Swagger spec generator for play framework | GitHub stars GitHub commit activity PPrint | Pretty-printing value, types and type-signatures in Scala | GitHub stars GitHub commit activity pureconfig | A boilerplate-free library for loading configuration files | GitHub stars GitHub commit activity REPLesent | A neat little tool to build presentations using the Scala REPL | GitHub stars GitHub commit activity scala-ssh | Remote shell access via SSH for your Scala applications | GitHub stars GitHub commit activity scala-stm | A library-based Software Transactional Memory (STM) for Scala, coupled with transactional sets and maps | GitHub stars GitHub commit activity Scavenger | An experimental automated theorem prover. | service-chassis | A scala chassis to get your applications and services bootstrapped quickly | GitHub stars GitHub commit activity spliff | Efficient diffing in Scala | GitHub stars GitHub commit activity scountries | Scala library that provides an enumeration of ISO 3166 codes for countries, along with their subdivisions. | GitHub stars GitHub commit activity

Android

Scala libraries and wrappers for Android development.

Name | Description | GitHub Activity ---- | ----------- | --------------- sbt-android | An easy-to-use sbt plugin for working with all Android projects | GitHub stars GitHub commit activity scaloid | Scaloid makes your Android code easy to understand and maintain. | GitHub stars GitHub commit activity

HTTP

Scala libraries and wrappers for HTTP clients.

Name | Description | GitHub Activity ---- | ----------- | --------------- akka-http | The Streaming-first HTTP server/module of Akka | GitHub stars GitHub commit activity reboot | Scala wrapper for the Java AsyncHttpClient. | GitHub stars GitHub commit activity finch | Scala combinator library for building Finagle HTTP services | GitHub stars GitHub commit activity fintrospect | Implement fast, type-safe HTTP webservices for Finagle | GitHub stars GitHub commit activity http4s | A minimal, idiomatic Scala interface for HTTP | GitHub stars GitHub commit activity jefe | Manages installation, updating, downloading, launching, error reporting, and more for your application. | GitHub stars GitHub commit activity lolhttp | An HTTP Server and Client library for Scala. | GitHub stars GitHub commit activity requests-scala | A Scala port of the popular Python Requests HTTP client: flexible, intuitive, and straightforward to use. | GitHub stars GitHub commit activity RosHTTP | Unified Scala.js + Scala HTTP client API | GitHub stars GitHub commit activity scalaj-http | Simple scala wrapper for HttpURLConnection. OAuth included. | GitHub stars GitHub commit activity scalaxb | scalaxb is an XML data binding tool for Scala. | GitHub stars GitHub commit activity sttp | The Scala HTTP client you always wanted! | GitHub stars GitHub commit activity tapir | Declarative, type-safe web endpoints library | GitHub stars GitHub commit activity endpoints4s | Describe HTTP endpoints in Scala and derive clients, servers, and documentation | GitHub stars GitHub commit activity frontier | Fast, efficient, pure-functional, effect-free websocket, http and udp server, http client and telegram bot | GitHub stars GitHub commit activity

Semantic Web

Scala libraries for interactions with the Web of Data, and other RDF tools.

Name | Description | GitHub Activity ---- | ----------- | --------------- banana-rdf | Banana RDF | GitHub stars GitHub commit activity scowl | A Scala DSL for programming with the OWL API. | GitHub stars GitHub commit activity

Metrics and Monitoring

Scala libraries for gathering metrics and monitoring applications.

Name | Description | GitHub Activity ---- | ----------- | --------------- metrics-scala | The scala API for Dropwizard's Metrics. | GitHub stars GitHub commit activity

Parsing

Scala libraries for creating parsers.

Name | Description | GitHub Activity ---- | ----------- | --------------- atto | friendly little parsers | GitHub stars GitHub commit activity fastparse | Writing Fast Parsers Fast in Scala | GitHub stars GitHub commit activity parboiled2 | A macro-based PEG parser generator for Scala 2.10+ | GitHub stars GitHub commit activity scala-parser-combinators | simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module | GitHub stars GitHub commit activity cats-parse | A parsing library for the cats ecosystem | GitHub stars GitHub commit activity scallion | LL(1) parser combinators in Scala | GitHub stars GitHub commit activity

Sbt plugins

Sbt plugins to make your life easier.

Name | Description | GitHub Activity ---- | ----------- | --------------- better-monadic-for | Desugaring scala for without implicit withFilters | GitHub stars GitHub commit activity coursier | Pure Scala Artifact Fetching | GitHub stars GitHub commit activity mdoc | Typechecked markdown documentation for Scala | GitHub stars GitHub commit activity sbt-api-mappings | An Sbt plugin that fills apiMappings for common Scala libraries. | GitHub stars GitHub commit activity sbt-apidoc | A port of apidocjs https://apidocjs.com to sbt, to document REST Api | GitHub stars GitHub commit activity sbt-assembly | Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt) | GitHub stars GitHub commit activity sbt-buildinfo | I know this because build.sbt knows this. | GitHub stars GitHub commit activity sbt-ci-release | sbt plugin to automate Sonatype releases from GitHub Actions | GitHub stars GitHub commit activity sbt-dependency-check | SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). :rainbow: | GitHub stars GitHub commit activity sbt-docker | Create Docker images directly from sbt | GitHub stars GitHub commit activity sbt-doctest | Doctest for scala | GitHub stars GitHub commit activity sbt-ghpages | git, site and ghpages support for sbt projects. | GitHub stars GitHub commit activity sbt-groll | sbt plugin to roll the Git history | GitHub stars GitHub commit activity sbt-header | sbt-header is an sbt plugin for creating file headers, e.g. copyright headers | GitHub stars GitHub commit activity sbt-hepek | Sbt plugin for rendering Scala objects to files. And more! | GitHub stars GitHub commit activity sbt-ide-settings | SBT plugin for tweaking various IDE settings | GitHub stars GitHub commit activity sbt-jmh | "Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness) | GitHub stars GitHub commit activity sbt-microsites | An sbt plugin to create awesome microsites for your project | GitHub stars GitHub commit activity mima | A tool for catching binary incompatibility in Scala | GitHub stars GitHub commit activity sbt-native-packager | sbt Native Packager | GitHub stars GitHub commit activity sbt-pack | A sbt plugin for creating distributable Scala packages. | GitHub stars GitHub commit activity sbt-pgp | PGP plugin for sbt | GitHub stars GitHub commit activity sbt-release | A release plugin for sbt | GitHub stars GitHub commit activity sbt-revolver | An SBT plugin for dangerously fast development turnaround in Scala | GitHub stars GitHub commit activity sbt-scala-js-map | A Sbt plugin that configures source mapping for Scala.js projects hosted on Github | GitHub stars GitHub commit activity sbt-scalafmt | sbt plugin for Scalafmt | GitHub stars GitHub commit activity sbt-scoverage | sbt plugin for scoverage | GitHub stars GitHub commit activity sbt-site | Site generation for sbt | GitHub stars GitHub commit activity sbt-sonatype | A sbt plugin for publishing Scala/Java projects to the Maven central. | GitHub stars GitHub commit activity sbt-unidoc | sbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects. | GitHub stars GitHub commit activity sbt-updates | sbt plugin that can check Maven and Ivy repositories for dependency updates | GitHub stars GitHub commit activity sbt-eclipse | Plugin for sbt to create Eclipse project definitions | GitHub stars GitHub commit activity scala-clippy | Good advice for Scala compiler errors | GitHub stars GitHub commit activity splain | better implicit errors for scala | GitHub stars GitHub commit activity tut | doc/tutorial generator for scala | GitHub stars GitHub commit activity xsbt-web-plugin | Servlet support for sbt | GitHub stars GitHub commit activity sbt-deploy-ssh | SBT deploy plugin | GitHub stars GitHub commit activity sbt-git | A git plugin for SBT | GitHub stars GitHub commit activity sbt-git | Use git-describe as a version and run git commands inside SBT shell | GitHub stars GitHub commit activity

XML / HTML

XML and HTML generation and processing

Name | Description | GitHub Activity ---- | ----------- | --------------- scala-scraper | A Scala library for scraping content from HTML pages | GitHub stars GitHub commit activity xs4s | XML Streaming for Scala including FS2/cats support | GitHub stars GitHub commit activity

Markdown

Name | Description | GitHub Activity ---- | ----------- | --------------- Laika | Text Markup Transformer for sbt and Scala applications, transforming Markdown and reStructuredText to HTML, EPUB and PDF | GitHub stars GitHub commit activity

JavaScript

JavaScript generation and interop libraries.

Name | Description | GitHub Activity ---- | ----------- | --------------- scalafiddle-editor | Web user interface for ScalaFiddle | GitHub stars GitHub commit activity scala-js | Scala.js, the Scala to JavaScript compiler | GitHub stars GitHub commit activity

Scheduling

Name | Description | GitHub Activity ---- | ----------- | --------------- akka-quartz-scheduler | Quartz Extension and utilities for cron-style scheduling in Akka | GitHub stars GitHub commit activity

Templating

Web templating engines.

Name | Description | GitHub Activity ---- | ----------- | --------------- beard | A lightweight, logicless templating engine, written in Scala and inspired by Mustache | GitHub stars GitHub commit activity scalatags | ScalaTags is a small XML/HTML construction library for Scala. | GitHub stars GitHub commit activity scalate | Scalate is a Scala based template engine which supports HAML, Mustache and JSP, Erb and Velocity style syntaxes. | GitHub stars GitHub commit activity twirl | Twirl is Play's default template engine | GitHub stars GitHub commit activity hepek | Typesafe HTML templates in pure Scala. Static site generator included! Play and ScalaJS support! | GitHub stars GitHub commit activity

Tools

Name | Description | GitHub Activity ---- | ----------- | --------------- scala-trace-debug | Macro based print debugging. Locates log statements in your IDE. | GitHub stars GitHub commit activity bloop | Bloop is a build server and CLI tool to compile, test and run Scala fast from any editor or build tool. | GitHub stars GitHub commit activity codacy-scalameta | Codacy tool for Scalameta | GitHub stars GitHub commit activity coursier | Pure Scala Artifact Fetching | GitHub stars GitHub commit activity dregex | Dregex is a JVM 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. | GitHub stars GitHub commit activity fast-string-interpolator | Scala macro that generates ultra-fast string interpolators. | GitHub stars GitHub commit activity fastring | Extremely fast string formatting | GitHub stars GitHub commit activity gitbucket | A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility | GitHub stars GitHub commit activity giter8 | a command line tool to apply templates defined on GitHub | GitHub stars GitHub commit activity metals | Scala language server with rich IDE features 🚀 | GitHub stars GitHub commit activity mill | Your shiny new Java/Scala build tool! | GitHub stars GitHub commit activity pos | Macro based print debugging. Locates debug statements in your IDE. Supports logging. | GitHub stars GitHub commit activity sbt | sbt, the interactive build tool | GitHub stars GitHub commit activity scalafix | Refactoring and linting tool for Scala | GitHub stars GitHub commit activity Scalafmt | Code formatter for Scala | scalariform | Scala source code formatter | GitHub stars GitHub commit activity scalastyle | scalastyle | GitHub stars GitHub commit activity Scalatex | Programmable, Typesafe Document Generation | GitHub stars GitHub commit activity scapegoat | Scala compiler plugin for static code analysis | GitHub stars GitHub commit activity wartremover | Flexible Scala code linting tool | GitHub stars GitHub commit activity stone | URL (de)construct. Withers. | GitHub stars GitHub commit activity scalajs-router | ScalaJS frontend router | GitHub stars GitHub commit activity scala2plantuml | Scala2PlantUML generates PlantUML diagrams from Scala code. | GitHub stars GitHub commit activity

Geospatial

Libraries to aid with geospatial calculations and artifacts.

Name | Description | GitHub Activity ---- | ----------- | --------------- geotrellis | GeoTrellis is a geographic data processing engine for high performance applications. | GitHub stars GitHub commit activity osm4scala | Scala and Spark library focused on reading OpenStreetMap Pbf files. | GitHub stars GitHub commit activity rtree2d | RTree2D is a 2D immutable R-tree for ultra-fast nearest and intersection queries in plane and spherical coordinates | GitHub stars GitHub commit activity sfcurve | LocationTech SFCurve is a Scala library for the creation, transformation, and querying of space-filling curves | GitHub stars GitHub commit activity stac4s | a scala library with primitives to build applications using the SpatioTemporal Asset Catalogs specification | GitHub stars GitHub commit activity franklin | A STAC/OGC API Features Web Service | GitHub stars GitHub commit activity

Devops

DevOps related tools and libraries.

Name | Description | GitHub Activity ---- | ----------- | --------------- skuber | A Scala Kubernetes client library | GitHub stars GitHub commit activity

Learning Scala

Nice books, blogs and other resources to learn Scala

Books

Exercises

Tutorials and courses

Commercial courses

Community Members' Blogs

Company Blogs

Podcasts

Communities

Misc.