Awesome Scala Save

A community driven list of useful Scala libraries, frameworks and software.

Project README

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 starsGitHub commit activity

Artificial Intelligence

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

Messaging

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

Web Frameworks

Scala frameworks for web development.

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

Reactive Web Frameworks

Scala libraries for Reactive Web development

Name Description GitHub Activity
Binding.scala Reactive data-binding for Scala GitHub starsGitHub commit activity
korolev Single Page Applications running on the server side. GitHub starsGitHub commit activity
udash-core Scala framework for building beautiful and maintainable web applications. GitHub starsGitHub commit activity
vertx-lang-scala Vert.x for Scala GitHub starsGitHub 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 starsGitHub commit activity
dupin Minimal, idiomatic, customizable validation Scala library. GitHub starsGitHub commit activity
octopus Scala library for boilerplate-free validation GitHub starsGitHub commit activity
veto If you don't agree with the data GitHub starsGitHub 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 starsGitHub commit activity
scaposer GNU Gettext .po file loader for Scala GitHub starsGitHub 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 starsGitHub commit activity
aws-request-signer Scala library to sign HTTP requests to AWS services. GitHub starsGitHub commit activity
OAuth2-mock-play An implementation of an OAuth2 server designed for mocking/testing GitHub starsGitHub commit activity
play-googleauth Simple play module for authenticating against Google GitHub starsGitHub commit activity
play-pac4j Security library for Play framework 2 in Java and Scala: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT... GitHub starsGitHub commit activity
play2-auth Play2.x Authentication and Authorization module GitHub starsGitHub commit activity
scala-oauth2-provider OAuth 2.0 server-side implementation written in Scala GitHub starsGitHub commit activity
securesocial A module that provides OAuth, OAuth2 and OpenID authentication for Play Framework applications GitHub starsGitHub commit activity

Cryptography

Cryptography and Encryption Libraries.

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

Testing

Libraries for code testing.

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

JSON

Libraries for work with json.

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

YAML

Libraries for work with YAML.

Name Description GitHub Activity
moultingyaml Scala wrapper for SnakeYAML GitHub starsGitHub 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 starsGitHub commit activity
kantan.csv CSV handling library for Scala GitHub starsGitHub commit activity
scala-csv CSV Reader/Writer for Scala GitHub starsGitHub commit activity
spata Functional, stream-based CSV processor for Scala GitHub starsGitHub 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 starsGitHub commit activity
borer Efficient CBOR and JSON (de)serialization in Scala GitHub starsGitHub commit activity
avro4s Avro schema generation and serialization / deserialization for Scala GitHub starsGitHub commit activity
chill Scala extensions for the Kryo serialization library GitHub starsGitHub commit activity
msgpack-scala MessagePack serializer implementation for Scala / msgpack.org[Scala] GitHub starsGitHub commit activity
ScalaPB Protocol buffer compiler for Scala. GitHub starsGitHub commit activity
scodec Scala combinator library for working with binary data GitHub starsGitHub commit activity
scrooge A Thrift parser/generator GitHub starsGitHub commit activity
upickle uPickle: a simple, fast, dependency-free JSON & Binary (MessagePack) serialization library for Scala GitHub starsGitHub commit activity
proto Lightweight and fast serialization library for Scala 2/3 based on Protocol Buffers with macros GitHub starsGitHub 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 starsGitHub commit activity
axle Axle Domain Specific Language for Scientific Cloud Computing and Visualization GitHub starsGitHub commit activity
BigDL Building Large-Scale AI Applications for Distributed Big Data GitHub starsGitHub commit activity
breeze Breeze is a numerical processing library for Scala. GitHub starsGitHub commit activity
Clustering4Ever C4E, a JVM friendly library written in Scala for both local and distributed (Spark) Clustering. GitHub starsGitHub commit activity
doddle-model :cake: doddle-model: machine learning in Scala. GitHub starsGitHub commit activity
figaro Figaro Programming Language and Core Libraries GitHub starsGitHub commit activity
libra A dimensional analysis library based on dependent types GitHub starsGitHub commit activity
LoMRF LoMRF is an open-source implementation of Markov Logic Networks GitHub starsGitHub commit activity
mgo Purely functional genetic algorithms for multi-objective optimisation GitHub starsGitHub commit activity
MLLib Machine Learning framework for Spark
nd4s ND4S: N-Dimensional Arrays for Scala. Scientific Computing a la Numpy. Based on ND4J. GitHub starsGitHub commit activity
NDScala N-dimensional arrays in Scala 3. Think NumPy ndarray, but type-safe over shapes, array/axis labels & numeric data types GitHub starsGitHub commit activity
numsca numsca is numpy for scala GitHub starsGitHub commit activity
onnx-scala An ONNX (Open Neural Network eXchange) API and backend for typeful, functional deep learning in Scala 3 GitHub starsGitHub commit activity
openmole Workflow engine for exploration of simulation models using high throughput computing GitHub starsGitHub commit activity
Optimus Optimus is a mathematical programming library for Scala. GitHub starsGitHub commit activity
OscaR a Scala toolkit for solving Operations Research problems
rings Rings: efficient JVM library for polynomial rings GitHub starsGitHub commit activity
smile Statistical Machine Intelligence & Learning Engine GitHub starsGitHub commit activity
spark-notebook Interactive and Reactive Data Science using Scala and Spark. GitHub starsGitHub commit activity
spire Powerful new number types and numeric abstractions for Scala. GitHub starsGitHub commit activity
squants The Scala API for Quantities, Units of Measure and Dimensional Analysis GitHub starsGitHub commit activity
Synapses A group of neural-network libraries for functional and mainstream languages GitHub starsGitHub commit activity
tensorflow_scala TensorFlow API for the Scala Programming Language GitHub starsGitHub commit activity
zeppelin Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. GitHub starsGitHub commit activity
spark-nlp State of the Art Natural Language Processing GitHub starsGitHub commit activity

Big Data

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

Command Line Interfaces

Libraries for creation of command line interfaces

Name Description GitHub Activity
clist Command Line Interface Scala Toolkit GitHub starsGitHub commit activity
decline A composable command-line parser for Scala. GitHub starsGitHub commit activity
mainargs A small, convenient, dependency-free library for command-line argument parsing in Scala GitHub starsGitHub commit activity
scallop a simple Scala CLI parsing library GitHub starsGitHub commit activity
scopt command line options parsing for Scala GitHub starsGitHub 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 starsGitHub commit activity
scalismo Scalable Image Analysis and Shape Modelling GitHub starsGitHub commit activity
scrimage Java, Scala and Kotlin image processing library GitHub starsGitHub commit activity

Sound processing and music

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

Functional Reactive Programming

Event streams, signals, observables, etc.

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

Modularization and Dependency Injection

Modularization of applications, dependency injection, etc.

Name Description GitHub Activity
airframe Essential Building Blocks for Scala GitHub starsGitHub commit activity
izumi Productivity-oriented collection of lightweight fancy stuff for Scala toolchain GitHub starsGitHub commit activity
macwire Lightweight and Nonintrusive Scala Dependency Injection Library GitHub starsGitHub commit activity
scala-guice Scala extensions for Google Guice GitHub starsGitHub commit activity
scaldi Lightweight Scala Dependency Injection Library GitHub starsGitHub commit activity
sclasner Scala classpath scanner GitHub starsGitHub commit activity
subcut Scala Uniquely Bound Classes Under Traits GitHub starsGitHub commit activity
jam Incredibly simple DI Scala library. GitHub starsGitHub 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 starsGitHub commit activity
akka-tracing A distributed tracing extension for Akka. Provides integration with Play framework, Spray and Akka HTTP. GitHub starsGitHub commit activity
annette Platform to build distributed, scalable, enterprise-wide business applications GitHub starsGitHub commit activity
curiodb Distributed NoSQL Database GitHub starsGitHub commit activity
finagle A fault tolerant, protocol-agnostic RPC system GitHub starsGitHub commit activity
glokka Library to register and lookup actors by names in an Akka cluster GitHub starsGitHub commit activity
lagom Reactive Microservices for the JVM GitHub starsGitHub commit activity
parapet A purely functional library to build distributed and event-driven systems GitHub starsGitHub commit activity
poppet Minimal, type-safe RPC Scala library. GitHub starsGitHub commit activity
reactors A foundational framework for distributed programming. GitHub starsGitHub commit activity

Extensions

Scala extensions.

Name Description GitHub Activity
Ammonite Scala Scripting GitHub starsGitHub commit activity
better-files Simple, safe and intuitive Scala I/O GitHub starsGitHub 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 starsGitHub commit activity
cassovary Cassovary is a simple big graph processing library for the JVM GitHub starsGitHub commit activity
cats Lightweight, modular, and extensible library for functional programming. GitHub starsGitHub commit activity
chimney Scala library for boilerplate-free, type-safe data transformations GitHub starsGitHub commit activity
chronoscala A JSR-310 port of nscala_time GitHub starsGitHub commit activity
Dsl.scala A framework to create embedded Domain-Specific Languages in Scala GitHub starsGitHub commit activity
each A macro library that converts native imperative syntax to scalaz's monadic expressions GitHub starsGitHub commit activity
eff Eff monad for cats - https://atnos-org.github.io/eff GitHub starsGitHub commit activity
enableIf.scala A library that toggles Scala code at compile-time, like #if in C/C++ GitHub starsGitHub commit activity
enumeratum A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations. GitHub starsGitHub commit activity
Freasy-Monad Easy way to create Free Monad using Scala macros with first-class Intellij support. GitHub starsGitHub commit activity
freedsl Practical effect composition library based on abstract wrapping type and the free monad GitHub starsGitHub commit activity
freestyle A cohesive & pragmatic framework of FP centric Scala libraries GitHub starsGitHub commit activity
hamsters A mini Scala utility library GitHub starsGitHub 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 starsGitHub commit activity
larray Large off-heap arrays and mmap files for Scala and Java GitHub starsGitHub commit activity
log4s High-performance SLF4J wrapper for Scala. GitHub starsGitHub commit activity
izumi Productivity-oriented collection of lightweight fancy stuff for Scala toolchain GitHub starsGitHub commit activity
Monocle Optics library for Scala GitHub starsGitHub commit activity
nscala-time A new Scala wrapper for Joda Time based on scala-time GitHub starsGitHub commit activity
quicklens Modify deeply nested case class fields GitHub starsGitHub commit activity
scala-records Labeled records for Scala based on structural refinement types and macros. GitHub starsGitHub commit activity
refined Refinement types for Scala GitHub starsGitHub commit activity
scala-async An asynchronous programming facility for Scala GitHub starsGitHub 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 starsGitHub commit activity
scala-logging Convenient and performant logging library for Scala wrapping SLF4J. GitHub starsGitHub commit activity
scalameta Library to read, analyze, transform and generate Scala programs GitHub starsGitHub commit activity
Scalactic Small library of utilities related to quality that helps keeping code clear and correct.
scalaz Principled Functional Programming in Scala GitHub starsGitHub commit activity
scribe The fastest logging library in the world. Built from scratch in Scala and programmatically configurable. GitHub starsGitHub commit activity
shapeless Generic programming for Scala GitHub starsGitHub commit activity
simulacrum First class syntax support for type classes in Scala GitHub starsGitHub commit activity
squid Squid – type-safe metaprogramming and compilation framework for Scala GitHub starsGitHub commit activity
tinylog tinylog is a lightweight logging framework for Java, Kotlin, Scala, and Android GitHub starsGitHub commit activity
util Wonderful reusable code from Twitter GitHub starsGitHub 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 starsGitHub commit activity
aws4s Non-blocking AWS SDK for Scala exposing strongly-typed APIs built on top of http4s, fs2 and cats GitHub starsGitHub 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 starsGitHub commit activity
eclair A scala implementation of the Lightning Network. GitHub starsGitHub commit activity
fansi Scala/Scala.js library for manipulating Fancy Ansi colored strings GitHub starsGitHub commit activity
figlet4s ASCII-art banners in Scala GitHub starsGitHub commit activity
fs2-aws fs2 utilities to interact with AWS GitHub starsGitHub commit activity
google4s A lean, functional library for Google Cloud Services in Scala GitHub starsGitHub commit activity
google-api-scala This API is a wrapper for the google java libraries. Currently mapping Admin Directory, Drive, and Calendar. GitHub starsGitHub commit activity
mailgun4s Mailgun API implementation in Scala GitHub starsGitHub commit activity
managerial A zero-dependency Scala library for managing resources monadically GitHub starsGitHub commit activity
media4s Scala command-line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media. GitHub starsGitHub 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 starsGitHub commit activity
ostinato A chess library that runs on the server (Scala) and on the browser (ScalaJS). GitHub starsGitHub commit activity
play-swagger Swagger spec generator for play framework GitHub starsGitHub commit activity
PPrint Pretty-printing value, types and type-signatures in Scala GitHub starsGitHub commit activity
pureconfig A boilerplate-free library for loading configuration files GitHub starsGitHub commit activity
REPLesent A neat little tool to build presentations using the Scala REPL GitHub starsGitHub commit activity
scala-ssh Remote shell access via SSH for your Scala applications GitHub starsGitHub commit activity
scala-stm A library-based Software Transactional Memory (STM) for Scala, coupled with transactional sets and maps GitHub starsGitHub commit activity
Scavenger An experimental automated theorem prover.
service-chassis A scala chassis to get your applications and services bootstrapped quickly GitHub starsGitHub commit activity
spliff Efficient diffing in Scala GitHub starsGitHub 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 starsGitHub commit activity
scaloid Scaloid makes your Android code easy to understand and maintain. GitHub starsGitHub 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 starsGitHub commit activity
reboot Scala wrapper for the Java AsyncHttpClient. GitHub starsGitHub commit activity
finch Scala combinator library for building Finagle HTTP services GitHub starsGitHub commit activity
fintrospect Implement fast, type-safe HTTP webservices for Finagle GitHub starsGitHub commit activity
http4s A minimal, idiomatic Scala interface for HTTP GitHub starsGitHub commit activity
jefe Manages installation, updating, downloading, launching, error reporting, and more for your application. GitHub starsGitHub commit activity
lolhttp An HTTP Server and Client library for Scala. GitHub starsGitHub commit activity
requests-scala A Scala port of the popular Python Requests HTTP client: flexible, intuitive, and straightforward to use. GitHub starsGitHub commit activity
RosHTTP Unified Scala.js + Scala HTTP client API GitHub starsGitHub commit activity
scalaj-http Simple scala wrapper for HttpURLConnection. OAuth included. GitHub starsGitHub commit activity
scalaxb scalaxb is an XML data binding tool for Scala. GitHub starsGitHub commit activity
sttp The Scala HTTP client you always wanted! GitHub starsGitHub commit activity
tapir Declarative, type-safe web endpoints library GitHub starsGitHub commit activity
endpoints4s Describe HTTP endpoints in Scala and derive clients, servers, and documentation GitHub starsGitHub commit activity
frontier Fast, efficient, pure-functional, effect-free websocket, http and udp server, http client and telegram bot GitHub starsGitHub 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 starsGitHub commit activity
scowl A Scala DSL for programming with the OWL API. GitHub starsGitHub 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 starsGitHub commit activity

Parsing

Scala libraries for creating parsers.

Name Description GitHub Activity
atto friendly little parsers GitHub starsGitHub commit activity
fastparse Writing Fast Parsers Fast in Scala GitHub starsGitHub commit activity
parboiled2 A macro-based PEG parser generator for Scala 2.10+ GitHub starsGitHub 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 starsGitHub commit activity
cats-parse A parsing library for the cats ecosystem GitHub starsGitHub commit activity
scallion LL(1) parser combinators in Scala GitHub starsGitHub 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 starsGitHub commit activity
coursier Pure Scala Artifact Fetching GitHub starsGitHub commit activity
mdoc Typechecked markdown documentation for Scala GitHub starsGitHub commit activity
sbt-api-mappings An Sbt plugin that fills apiMappings for common Scala libraries. GitHub starsGitHub commit activity
sbt-apidoc A port of apidocjs https://apidocjs.com to sbt, to document REST Api GitHub starsGitHub commit activity
sbt-assembly Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt) GitHub starsGitHub commit activity
sbt-buildinfo I know this because build.sbt knows this. GitHub starsGitHub commit activity
sbt-ci-release sbt plugin to automate Sonatype releases from GitHub Actions GitHub starsGitHub 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 starsGitHub commit activity
sbt-docker Create Docker images directly from sbt GitHub starsGitHub commit activity
sbt-doctest Doctest for scala GitHub starsGitHub commit activity
sbt-ghpages git, site and ghpages support for sbt projects. GitHub starsGitHub commit activity
sbt-groll sbt plugin to roll the Git history GitHub starsGitHub commit activity
sbt-header sbt-header is an sbt plugin for creating file headers, e.g. copyright headers GitHub starsGitHub commit activity
sbt-hepek Sbt plugin for rendering Scala objects to files. And more! GitHub starsGitHub commit activity
sbt-ide-settings SBT plugin for tweaking various IDE settings GitHub starsGitHub commit activity
sbt-jmh "Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness) GitHub starsGitHub commit activity
sbt-microsites An sbt plugin to create awesome microsites for your project GitHub starsGitHub commit activity
mima A tool for catching binary incompatibility in Scala GitHub starsGitHub commit activity
sbt-native-packager sbt Native Packager GitHub starsGitHub commit activity
sbt-pack A sbt plugin for creating distributable Scala packages. GitHub starsGitHub commit activity
sbt-pgp PGP plugin for sbt GitHub starsGitHub commit activity
sbt-release A release plugin for sbt GitHub starsGitHub commit activity
sbt-revolver An SBT plugin for dangerously fast development turnaround in Scala GitHub starsGitHub commit activity
sbt-scala-js-map A Sbt plugin that configures source mapping for Scala.js projects hosted on Github GitHub starsGitHub commit activity
sbt-scalafmt sbt plugin for Scalafmt GitHub starsGitHub commit activity
sbt-scoverage sbt plugin for scoverage GitHub starsGitHub commit activity
sbt-site Site generation for sbt GitHub starsGitHub commit activity
sbt-sonatype A sbt plugin for publishing Scala/Java projects to the Maven central. GitHub starsGitHub commit activity
sbt-unidoc sbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects. GitHub starsGitHub commit activity
sbt-updates sbt plugin that can check Maven and Ivy repositories for dependency updates GitHub starsGitHub commit activity
sbt-eclipse Plugin for sbt to create Eclipse project definitions GitHub starsGitHub commit activity
scala-clippy Good advice for Scala compiler errors GitHub starsGitHub commit activity
splain better implicit errors for scala GitHub starsGitHub commit activity
tut doc/tutorial generator for scala GitHub starsGitHub commit activity
xsbt-web-plugin Servlet support for sbt GitHub starsGitHub commit activity
sbt-deploy-ssh SBT deploy plugin GitHub starsGitHub commit activity
sbt-git A git plugin for SBT GitHub starsGitHub commit activity
sbt-git Use git-describe as a version and run git commands inside SBT shell GitHub starsGitHub 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 starsGitHub commit activity
xs4s XML Streaming for Scala including FS2/cats support GitHub starsGitHub 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 starsGitHub commit activity

JavaScript

JavaScript generation and interop libraries.

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

Scheduling

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

Templating

Web templating engines.

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

Tools

Name Description GitHub Activity
scala-trace-debug Macro based print debugging. Locates log statements in your IDE. GitHub starsGitHub 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 starsGitHub commit activity
codacy-scalameta Codacy tool for Scalameta GitHub starsGitHub commit activity
coursier Pure Scala Artifact Fetching GitHub starsGitHub 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 starsGitHub commit activity
fast-string-interpolator Scala macro that generates ultra-fast string interpolators. GitHub starsGitHub commit activity
fastring Extremely fast string formatting GitHub starsGitHub commit activity
gitbucket A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility GitHub starsGitHub commit activity
giter8 a command line tool to apply templates defined on GitHub GitHub starsGitHub commit activity
metals Scala language server with rich IDE features 🚀 GitHub starsGitHub commit activity
mill Your shiny new Java/Scala build tool! GitHub starsGitHub commit activity
pos Macro based print debugging. Locates debug statements in your IDE. Supports logging. GitHub starsGitHub commit activity
sbt sbt, the interactive build tool GitHub starsGitHub commit activity
scalafix Refactoring and linting tool for Scala GitHub starsGitHub commit activity
Scalafmt Code formatter for Scala
scalariform Scala source code formatter GitHub starsGitHub commit activity
scalastyle scalastyle GitHub starsGitHub commit activity
Scalatex Programmable, Typesafe Document Generation GitHub starsGitHub commit activity
scapegoat Scala compiler plugin for static code analysis GitHub starsGitHub commit activity
wartremover Flexible Scala code linting tool GitHub starsGitHub commit activity
stone URL (de)construct. Withers. GitHub starsGitHub commit activity
scalajs-router ScalaJS frontend router GitHub starsGitHub commit activity
scala2plantuml Scala2PlantUML generates PlantUML diagrams from Scala code. GitHub starsGitHub 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 starsGitHub commit activity
osm4scala Scala and Spark library focused on reading OpenStreetMap Pbf files. GitHub starsGitHub commit activity
rtree2d RTree2D is a 2D immutable R-tree for ultra-fast nearest and intersection queries in plane and spherical coordinates GitHub starsGitHub commit activity
sfcurve LocationTech SFCurve is a Scala library for the creation, transformation, and querying of space-filling curves GitHub starsGitHub commit activity
stac4s a scala library with primitives to build applications using the SpatioTemporal Asset Catalogs specification GitHub starsGitHub commit activity
franklin A STAC/OGC API Features Web Service GitHub starsGitHub commit activity

Devops

DevOps related tools and libraries.

Name Description GitHub Activity
skuber A Scala Kubernetes client library GitHub starsGitHub commit activity

Learning Scala

Nice books, blogs and other resources to learn Scala

Books

Exercises

Tutorials and courses

Commercial courses

  • 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.

Community Members' Blogs

Company Blogs

Podcasts

  • 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.

Misc.

Open Source Agenda is not affiliated with "Awesome Scala" Project. README Source: lauris/awesome-scala