How to contribute

Awesome Scala

A curated list of awesome Scala frameworks, libraries and tools.

Asynchronous, Concurrent and Distributed Programming

Big Data

Computer Science

Algorithms and Data Structures

  1. project logo

    twitter / cassovary

    1045

    Cassovary is a simple big graph processing library for the JVM

  2. project logo

    scala-graph / scala-graph

    564

    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.

  3. project logo

    typelevel / cats-collections

    558

    Data structures for pure functional programming in Scala

  4. project logo

    non / debox

    267

    Fast, deboxed, specialized data structures for Scala

Caching

  1. project logo

    cb372 / scalacache

    771

    Simple caching in Scala

  2. project logo

    blemale / scaffeine

    266

    Thin Scala wrapper for Caffeine (https://github.com/ben-manes/caffeine)

  3. project logo

    zio / zio-cache

    85

    A ZIO native cache with a simple and compositional interface

  4. project logo

    jcouyang / jujiu

    58

    Functional Scala Cache

Code Generation

  1. project logo

    sbt / sbt-buildinfo

    553

    I know this because build.sbt knows this.

  2. project logo

    disneystreaming / smithy4s

    351

    https://disneystreaming.github.io/smithy4s/

  3. project logo

    thesamet / sbt-protoc

    167

    SBT plugin for generating code from Protocol Buffer using protoc

  4. project logo

    sbt / sbt-boilerplate

    109

    sbt plugin for generating scala.Tuple/Function related boilerplate code

Compilers

  1. project logo

    scala / scala

    14355

    Scala 2 compiler and standard library. Scala 2 bugs at https://github.com/scala/bug; Scala 3 at https://github.com/scala/scala3

  2. project logo

    scala / scala3

    5886

    The Scala 3 compiler, also known as Dotty.

  3. project logo

    scala-js / scala-js

    4606

    Scala.js, the Scala to JavaScript compiler

  4. project logo

    scala-native / scala-native

    4496

    Your favorite language gets closer to bare metal.

Dependency Injection

  1. project logo

    softwaremill / macwire

    1276

    Zero-cost, compile-time, type-safe dependency injection library.

  2. project logo

    dickwall / subcut

    386

    Scala Uniquely Bound Classes Under Traits

  3. project logo

    codingwell / scala-guice

    341

    Scala extensions for Google Guice

  4. project logo

    scaldi / scaldi

    289

    Lightweight Scala Dependency Injection Library

Functional Programming and Category Theory

  1. project logo

    typelevel / cats

    5264

    Lightweight, modular, and extensible library for functional programming.

  2. project logo

    scalaz / scalaz

    4668

    Principled Functional Programming in Scala

  3. project logo

    softwaremill / quicklens

    830

    Modify deeply nested case class fields

  4. project logo

    precog / matryoshka

    811

    Generalized recursion schemes and traversals for Scala.

Logic Programming and Type Constraints

  1. project logo

    fthomas / refined

    1714

    Refinement types for Scala

  2. project logo

    iltotore / iron

    466

    Strong type constraints for Scala

  3. project logo

    epfl-lara / stainless

    359

    Verification framework and tool for higher-order Scala programs

  4. project logo

    vivri / adjective

    91

    Programming is an exercise in linguistics; spice-up Scala types with Adjective.

Miscellaneous Utils

  1. project logo

    twitter / util

    2692

    Wonderful reusable code from Twitter

  2. project logo

    optics-dev / monocle

    1660

    Optics library for Scala

  3. project logo

    7mind / izumi

    617

    Productivity-oriented collection of lightweight fancy stuff for Scala toolchain

  4. project logo

    wvlet / airframe

    633

    Essential Building Blocks for Scala

Parsing

  1. project logo

    com-lihaoyi / fastparse

    1096

    Writing Fast Parsers Fast in Scala

  2. project logo

    scala / scala-parser-combinators

    656

    simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module

  3. project logo

    tpolecat / atto

    359

    friendly little parsers

  4. project logo

    sirthias / parboiled

    1282

    Elegant parsing in Java and Scala - lightweight, easy-to-use, powerful.

Programming Language Interfaces

  1. project logo

    scalablytyped / converter

    222

    Typescript to Scala.js converter

  2. project logo

    scala-native / scala-native-bindgen

    33

    Scala Native Binding Generator

Scala Language Extensions

  1. project logo

    milessabin / shapeless

    3395

    Generic programming for Scala

  2. project logo

    lloydmeta / enumeratum

    1193

    A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations.

  3. project logo

    scalalandio / chimney

    1177

    Scala library for boilerplate-free, type-safe data transformations

  4. project logo

    typelevel / simulacrum

    935

    First class syntax support for type classes in Scala

Configuration, Logging, Testing and Monitoring

Command Line Parsing

  1. project logo

    scopt / scopt

    1433

    command line options parsing for Scala

  2. project logo

    bkirwi / decline

    647

    A composable command-line parser for Scala.

  3. project logo

    alexarchambault / case-app

    296

    Type-level & seamless command-line argument parsing for Scala

  4. project logo

    com-lihaoyi / mainargs

    190

    A small, convenient, dependency-free library for command-line argument parsing in Scala

Configuration and Environment

  1. project logo

    lightbend / config

    6169

    configuration library for JVM languages using HOCON files

  2. project logo

    pureconfig / pureconfig

    1491

    A boilerplate-free library for loading configuration files

  3. project logo

    vlovgr / ciris

    402

    Functional Configurations for Scala

  4. project logo

    zalando / grafter

    239

    Grafter is a library to configure and wire Scala applications

Logging

  1. project logo

    lightbend-labs / scala-logging

    910

    Convenient and performant logging library for Scala wrapping SLF4J.

  2. project logo

    outr / scribe

    523

    The fastest logging library in the world. Built from scratch in Scala and programmatically configurable.

  3. project logo

    lego / woof

    433

    A pure Scala 3 logging library with no reflection

  4. project logo

    typelevel / log4cats

    402

    Logging Tools For Interaction with cats-effect

Performance and Monitoring

  1. project logo

    kamon-io / kamon

    1408

    Distributed Tracing, Metrics and Context Propagation for applications running on the JVM

  2. project logo

    sbt / sbt-jmh

    788

    "Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness)

  3. project logo

    lucacanali / sparkmeasure

    711

    This is the development repository for sparkMeasure, a tool and library designed for efficient analysis and troubleshooting of Apache Spark jobs. It focuses on easing the collection and examination of Spark metrics, making it a practical choice for both developers and data engineers.

  4. project logo

    erikvanoosten / metrics-scala

    427

    The scala API for Dropwizard's Metrics.

Testing

  1. project logo

    gatling / gatling

    6482

    Modern Load Testing as Code

  2. project logo

    typelevel / scalacheck

    1943

    Property-based testing for Scala

  3. project logo

    holdenk / spark-testing-base

    1525

    Base classes to use when writing tests with Spark

  4. project logo

    scalatest / scalatest

    1154

    A testing tool for Scala and Java developers

Databases, Indexing and Searching

Deployment, Virtualization and Cloud

Development Tooling

Build Tools

  1. project logo

    sbt / sbt

    4808

    sbt, the interactive build tool

  2. project logo

    com-lihaoyi / mill

    2238

    Mill is a fast JVM build tool that supports Java, Scala and Kotlin. 2-4x faster than Gradle and 4-10x faster than Maven for common workflows, Mill aims to make your project’s build process performant, maintainable, and flexible

  3. project logo

    virtuslab / scala-cli

    555

    Scala CLI is a command-line tool to interact with the Scala language. It lets you compile, run, test, and package your Scala code (and more!)

  4. project logo

    build-server-protocol / build-server-protocol

    460

    Protocol for IDEs and build tools to communicate about compile, run, test, debug and more.

Code Analysis

  1. project logo

    joernio / joern

    2129

    Open-source code analysis platform for C/C++/Java/Binary/Javascript/Python/Kotlin based on code property graphs. Discord https://discord.gg/vv4MH284Hc

  2. project logo

    scalameta / scalameta

    1118

    Library to read, analyze, transform and generate Scala programs

  3. project logo

    scoverage / sbt-scoverage

    650

    sbt plugin for scoverage

  4. project logo

    lightbend-labs / mima

    462

    A tool for catching binary incompatibility in Scala

Code Editors and Notebooks

  1. project logo

    scalameta / metals

    2102

    Scala language server with rich IDE features 🚀

  2. project logo

    almond-sh / almond

    1599

    A Scala kernel for Jupyter

  3. project logo

    polynote / polynote

    4540

    A better notebook for Scala (and more)

  4. project logo

    jetbrains / sbt-ide-settings

    62

    SBT plugin for tweaking various IDE settings

Code Formatting

  1. project logo

    scalameta / scalafmt

    1443

    Code formatter for Scala

  2. project logo

    sbt / sbt-scalariform

    258

    sbt plugin adding support for source code formatting using Scalariform

  3. project logo

    scalameta / sbt-scalafmt

    203

    sbt plugin for Scalafmt

  4. project logo

    lucidsoftware / neo-sbt-scalafmt

    149

    Scalafmt SBT plugin

Library Dependency Management

  1. project logo

    coursier / coursier

    2043

    Pure Scala Artifact Fetching

  2. project logo

    sbt / sbt-dependency-graph

    1245

    sbt plugin to create a dependency graph for your project

  3. project logo

    scala-steward-org / scala-steward

    1149

    :robot: A bot that helps you keep your projects up-to-date

  4. project logo

    rtimush / sbt-updates

    761

    sbt plugin that can check Maven and Ivy repositories for dependency updates

Linting and Refactoring

  1. project logo

    wartremover / wartremover

    1084

    Flexible Scala code linting tool

  2. project logo

    scalacenter / scalafix

    835

    Refactoring and linting tool for Scala

  3. project logo

    scalastyle / scalastyle

    677

    scalastyle

  4. project logo

    scapegoat-scala / scapegoat

    530

    Scala compiler plugin for static code analysis

Miscellaneous Tools

  1. project logo

    rtyley / bfg-repo-cleaner

    11181

    Removes large or troublesome blobs like git-filter-branch does, but faster. And written in Scala

  2. project logo

    foundweekends / giter8

    1741

    a command line tool to apply templates defined on GitHub

  3. project logo

    spray / sbt-revolver

    851

    An SBT plugin for dangerously fast development turnaround in Scala

  4. project logo

    sbt / sbt-header

    186

    sbt-header is an sbt plugin for creating file headers, e.g. copyright headers

Packaging and Publishing

  1. project logo

    sbt / sbt-assembly

    1951

    Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt)

  2. project logo

    sbt / sbt-native-packager

    1596

    sbt Native Packager

  3. project logo

    sbt / sbt-release

    647

    A release plugin for sbt

  4. project logo

    xerial / sbt-pack

    496

    A sbt plugin for creating distributable Scala packages.

Printing and Debugging

  1. project logo

    com-lihaoyi / sourcecode

    521

    Scala library providing "source" metadata to your program, similar to Python's __name__, C++'s __LINE__ or Ruby's __FILE__.

  2. project logo

    com-lihaoyi / pprint

    227

    Pretty-printing value, types and type-signatures in Scala

  3. project logo

    johnreedlol / scala-trace-debug

    115

    Macro based print debugging. Locates log statements in your IDE.

  4. project logo

    adamw / scala-macro-debug

    80

    Scala macros for making debugging easier

Scripting and REPLs

  1. project logo

    com-lihaoyi / ammonite

    2610

    Scala Scripting

  2. project logo

    scala / toolkit

    91

    The batteries-included Scala

  3. project logo

    masseguillaume / scalakata2

    98

    Interactive Playground

  4. project logo

    dbdahl / rscala

    99

    The Scala interpreter is embedded in R and callbacks to R from the embedded interpreter are supported. Conversely, the R interpreter is embedded in Scala.

Static Sites and Documentation

  1. project logo

    tpolecat / tut

    579

    doc/tutorial generator for scala

  2. project logo

    typelevel / laika

    419

    Site and E-book Generator and Customizable Text Markup Transformer for sbt, Scala and Scala.js

  3. project logo

    scalameta / mdoc

    396

    Typechecked markdown documentation for Scala

  4. project logo

    lightbend / paradox

    248

    Markdown documentation

See also:

Images, Audio and Video

Mathematics, Finance, Data Science and Bioinformatics

Bioinformatics

  1. project logo

    bigdatagenomics / adam

    1003

    ADAM is a genomics analysis platform with specialized file formats built using Apache Avro, Apache Spark, and Apache Parquet. Apache 2 licensed.

  2. project logo

    fulcrumgenomics / fgbio

    315

    Tools for working with genomic and high throughput sequencing data.

  3. project logo

    projectglow / glow

    272

    An open-source toolkit for large-scale genomic analysis

  4. project logo

    clulab / reach

    97

    Reach Biomedical Information Extraction

Cryptography and Hashing

  1. project logo

    wavesplatform / waves

    1170

    ⛓️ Reference Waves Blockchain Node (client) implementation on Scala

  2. project logo

    hyperledger-labs / scorex

    544

    Scorex 2.0 Core

  3. project logo

    jmcardon / tsec

    350

    Type-safe general-cryptography library - https://jmcardon.github.io/tsec/

  4. project logo

    input-output-hk / scrypto

    201

    Cryptographic primitives for Scala

Economy, Finance and Cryptocurrencies

  1. project logo

    bitcoin-s / bitcoin-s

    358

    Bitcoin Implementation in Scala

  2. project logo

    lambdista / money

    77

    Scala DSL for money-related operations

  3. project logo

    snowplow / scala-forex

    46

    High-performance Scala library for performing exchange rate lookups and currency conversions

  4. project logo

    openquant / yahoofinancescala

    23

    A non-blocking Yahoo Finance Scala client

Natural Language Processing

  1. project logo

    johnsnowlabs / spark-nlp

    3877

    State of the Art Natural Language Processing

  2. project logo

    scalanlp / chalk

    258

    Chalk is a natural language processing library.

  3. project logo

    clulab / processors

    418

    Natural Language Processors

  4. project logo

    knowitall / nlptools

    101

    A toolkit that wraps various natural language processing implementations behind a common interface.

Numerical and Symbolic Computing

  1. project logo

    scalanlp / breeze

    3448

    Breeze is/was a numerical processing library for Scala.

  2. project logo

    typelevel / spire

    1764

    Powerful new number types and numeric abstractions for Scala.

  3. project logo

    vagmcs / optimus

    141

    Optimus is a mathematical programming library for Scala.

  4. project logo

    cascala / galileo

    70

    Scala Math - Numerical (Matlab-like) and Symbolic (Mathematica-like) tool

Probability, Statistics and Machine Learning

  1. project logo

    apache / predictionio

    12542

    PredictionIO, a machine learning server for developers and ML engineers.

  2. project logo

    microsoft / synapseml

    5070

    Simple and Distributed Machine Learning

  3. project logo

    salesforce / transmogrifai

    2248

    TransmogrifAI (pronounced trăns-mŏgˈrə-fī) is an AutoML library for building modular, reusable, strongly typed machine learning workflows on Apache Spark with minimal hand-tuning

  4. project logo

    byzer-org / byzer-lang

    1839

    Byzer (former MLSQL): A low-code open-source programming language for data pipeline, analytics and AI.

Mobile, Desktop and Game Development

Operating System, Hardware and Robotics

Text, Formats and Compression

Archives and Compression

  1. project logo

    gekomad / scala-compress

    8

    Archivers and Compressors for Scala

  2. project logo

    avast / bytecompressor

    5

    Java and Scala abstractions for some compression algorithms.

CSV

  1. project logo

    tototoshi / scala-csv

    698

    CSV Reader/Writer for Scala

  2. project logo

    davenverse / cormorant

    90

    A CSV Handling Library for FP.

  3. project logo

    scalikejdbc / csvquery

    37

    A handy SQL runner to work with CSV files

  4. project logo

    fingo / spata

    30

    Functional, stream-based CSV processor for Scala

JSON

  1. project logo

    circe / circe

    2497

    Yet another JSON library for Scala

  2. project logo

    json4s / json4s

    1485

    JSON library

  3. project logo

    spray / spray-json

    974

    A lightweight, clean and simple JSON implementation in Scala

  4. project logo

    plokhotnyuk / jsoniter-scala

    750

    Scala macros for compile-time generation of safe and ultra-fast JSON codecs + circe booster

Markdown

  1. project logo

    foundweekends / pamflet

    121

    a publishing application for short texts

  2. project logo

    noelwelsh / mads

    19

    Markdown String Interpolator for Scala 3

  3. project logo

    scalatra / scalamd

    10

    Scala of Markdown: http://daringfireball.net/projects/markdown

  4. project logo

    esamson / remder

    1

    Renders a live HTML view of a Markdown file. Bring your own editor.

Other Document Formats

  1. project logo

    lihaoyi / scalatex

    290

    Programmable, Typesafe Document Generation

  2. project logo

    tomtung / latex2unicode

    36

    Convert LaTeX markup to Unicode (in Scala and Java)

  3. project logo

    jphmrst / scala-latex

    1

    Generate LaTeX/PDF output from within Scala

  4. project logo

    jphmrst / scala-outlines

    0

    Representation of structured text in Scala

PDF

  1. project logo

    allenai / pdffigures2

    615

    Given a scholarly PDF, extract figures, tables, captions, and section titles.

  2. project logo

    allenai / science-parse

    629

    Science Parse parses scientific papers (in PDF form) and returns them in structured form.

  3. project logo

    cloudify / spdf

    199

    Create PDFs from Scala using plain old HTML and CSS. Uses wkhtmltopdf on the back-end which renders HTML using Webkit.

  4. project logo

    hhandoko / play2-scala-pdf

    26

    A PDF module for Play Framework 2 (Scala)

Serialization

  1. project logo

    scalapb / scalapb

    1309

    Protocol buffer compiler for Scala.

  2. project logo

    scala / pickling

    831

    Fast, customizable, boilerplate-free pickling support for Scala

  3. project logo

    scodec / scodec

    809

    Scala combinator library for working with binary data

  4. project logo

    sksamuel / avro4s

    719

    Avro schema generation and serialization / deserialization for Scala

Text Manipulation

  1. project logo

    rockymadden / stringmetric

    486

    :dart: String metrics and phonetic algorithms for Scala (e.g. Dice/Sorensen, Hamming, Jaccard, Jaro, Jaro-Winkler, Levenshtein, Metaphone, N-Gram, NYSIIS, Overlap, Ratcliff/Obershelp, Refined NYSIIS, Refined Soundex, Soundex, Weighted Levenshtein).

  2. project logo

    com-lihaoyi / fansi

    227

    Scala/Scala.js library for manipulating Fancy Ansi colored strings

  3. project logo

    bizzabo / diff

    177

    Visually compare Scala data structures with out of the box support for arbitrary case classes.

  4. project logo

    atry / fastring

    127

    Extremely fast string formatting

YAML

  1. project logo

    circe / circe-yaml

    141

    YAML parser for circe using SnakeYAML

  2. project logo

    jcazevedo / moultingyaml

    99

    Scala wrapper for SnakeYAML

  3. project logo

    virtuslab / scala-yaml

    93
  4. project logo

    jodersky / yamlesque

    6

    Reads like yaml, writes like yaml; it must be yaml!

See also:

Time, Positions and Units of Measurement

Web Development

Asset Management and Bundlers

  1. project logo

    sbt / sbt-web

    369

    Library for building sbt plugins for the web

  2. project logo

    scalacenter / scalajs-bundler

    237
  3. project logo

    vmunier / sbt-web-scalajs

    194

    SBT plugin to use Scala.js along with any sbt-web server.

  4. project logo

    irundaia / sbt-sassify

    68

    sbt-web plugin for Sass files

Authentication and Permissions

  1. project logo

    jaliss / securesocial

    1187

    A module that provides OAuth, OAuth2 and OpenID authentication for Play Framework applications

  2. project logo

    mohiva / play-silhouette

    818

    Silhouette is an authentication library for Play Framework applications that supports several authentication methods, including OAuth1, OAuth2, OpenID, CAS, 2FA, TOTP, Credentials, Basic Authentication or custom authentication schemes.

  3. project logo

    nulab / scala-oauth2-provider

    537

    OAuth 2.0 server-side implementation written in Scala

  4. project logo

    softwaremill / akka-http-session

    440

    Web & mobile client-side akka-http sessions, with optional JWT support

Emailing

  1. project logo

    dmurvihill / courier

    222

    send electronic mail with scala

  2. project logo

    playframework / play-mailer

    249

    Play mailer plugin

  3. project logo

    spinoco / fs2-mail

    44

    asynchronous library for sending and receiving mail via fs2._

  4. project logo

    eikek / emil

    41

    Emil is a library for dealing with E-Mail in Scala.

Forms and Validation

  1. project logo

    wix-incubator / accord

    529

    Accord: A sane validation library for Scala

  2. project logo

    jto / validation

    192

    validation api extracted from play

  3. project logo

    krzemin / octopus

    149

    Scala library for boilerplate-free validation

  4. project logo

    typelevel / literally

    107

    Compile time validation of literal values built from strings

HTTP Servers and Clients

  1. project logo

    playframework / playframework

    12563

    The Community Maintained High Velocity Web Framework For Java and Scala.

  2. project logo

    scalatra / scalatra

    2654

    Tiny Scala high-performance, async web framework, inspired by Sinatra

  3. project logo

    http4s / http4s

    2565

    A minimal, idiomatic Scala interface for HTTP

  4. project logo

    finagle / finch

    1598

    Scala combinator library for building Finagle HTTP services

Internationalization

  1. project logo

    makkarpov / scalingua

    53

    A simple gettext-like internationalization (aka i18n) library for Scala and Play Framework

  2. project logo

    alaz / scala-i18n

    43

    Play-like internationalized messages for any Scala

  3. project logo

    xitrum-framework / scaposer

    38

    GNU Gettext .po file loader for Scala

  4. project logo

    taig / babel

    34

    Internationalization (i18n) for Scala applications

Semantic Web

  1. project logo

    banana-rdf / banana-rdf

    295

    Banana RDF

  2. project logo

    phenoscape / scowl

    56

    A Scala DSL for programming with the OWL API.

Templating

  1. project logo

    scalate / scalate

    607

    Scalate is a Scala based template engine which supports HAML, Mustache and JSP, Erb and Velocity style syntaxes.

  2. project logo

    playframework / twirl

    551

    Twirl is Play's default template engine

  3. project logo

    mwunsch / handlebars.scala

    111

    A Scala implementation of the Handlebars templating language (a superset of Mustache).

  4. project logo

    zalando / beard

    120

    A lightweight, logicless templating engine, written in Scala and inspired by Mustache

Third-Party APIs

  1. project logo

    bot4s / telegram

    419

    Telegram Bot API Wrapper for Scala

  2. project logo

    danielasfregola / twitter4s

    255

    An asynchronous non-blocking Scala client for both the Twitter Rest and Streaming API

  3. project logo

    47degrees / github4s

    229

    A GitHub API wrapper written in Scala

  4. project logo

    slack-scala-client / slack-scala-client

    187

    A scala library for interacting with the slack api and real time messaging interface

URLs and Routing

  1. project logo

    raquo / waypoint

    93

    Efficient router for Laminar UI Library

  2. project logo

    sparsetech / trail

    82

    Routing library for the Scala platform

  3. project logo

    sherpal / url-dsl

    34

    Tiny dsl library for path et parameters of urls

  4. project logo

    tulz-app / frontroute

    33

    front-end router library for single-page applications built with Scala.js, with an API inspired by Akka HTTP

Web Frontend

  1. project logo

    japgolly / scalajs-react

    1644

    Facebook's React on Scala.JS

  2. project logo

    thoughtworksinc / binding.scala

    1586

    Reactive data-binding for Scala

  3. project logo

    raquo / laminar

    761

    Simple, expressive, and safe UI library for Scala.js

  4. project logo

    shadaj / slinky

    656

    Write Scala.js React apps just like you would in ES6

XML/HTML and DOM

  1. project logo

    com-lihaoyi / scalatags

    760

    ScalaTags is a small XML/HTML construction library for Scala.

  2. project logo

    ruippeixotog / scala-scraper

    717

    A Scala library for scraping content from HTML pages

  3. project logo

    eed3si9n / scalaxb

    337

    scalaxb is an XML data binding tool for Scala.

  4. project logo

    scala-js / scala-js-dom

    318

    Statically typed DOM API for Scala.js

See also: