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

    1037

    Cassovary is a simple big graph processing library for the JVM

  2. project logo

    typelevel / cats-collections

    554

    Data structures for pure functional programming in Scala

  3. project logo

    scala-graph / scala-graph

    554

    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.

  4. project logo

    non / debox

    271

    Fast, deboxed, specialized data structures for Scala

Caching

  1. project logo

    cb372 / scalacache

    764

    Simple caching in Scala

  2. project logo

    blemale / scaffeine

    256

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

  3. project logo

    zio / zio-cache

    83

    A ZIO native cache with a simple and compositional interface

  4. project logo

    jcouyang / jujiu

    55

    Functional Scala Cache

Code Generation

  1. project logo

    sbt / sbt-buildinfo

    541

    I know this because build.sbt knows this.

  2. project logo

    disneystreaming / smithy4s

    305

    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

    110

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

Compilers

  1. project logo

    scala / scala

    14219

    Scala 2 compiler and standard library. Bugs at https://github.com/scala/bug; Scala 3 at https://github.com/lampepfl/dotty

  2. project logo

    lampepfl / dotty

    5477

    The Scala 3 compiler, also known as Dotty.

  3. project logo

    scala-js / scala-js

    4493

    Scala.js, the Scala to JavaScript compiler

  4. project logo

    scala-native / scala-native

    4393

    Your favorite language gets closer to bare metal.

Dependency Injection

  1. project logo

    softwaremill / macwire

    1246

    Lightweight and Nonintrusive Scala Dependency Injection Library

  2. project logo

    dickwall / subcut

    389

    Scala Uniquely Bound Classes Under Traits

  3. project logo

    codingwell / scala-guice

    342

    Scala extensions for Google Guice

  4. project logo

    scaldi / scaldi

    288

    Lightweight Scala Dependency Injection Library

Functionnal Programming and Category Theory

  1. project logo

    typelevel / cats

    5089

    Lightweight, modular, and extensible library for functional programming.

  2. project logo

    scalaz / scalaz

    4635

    Principled Functional Programming in Scala

  3. project logo

    precog / matryoshka

    807

    Generalized recursion schemes and traversals for Scala.

  4. project logo

    softwaremill / quicklens

    803

    Modify deeply nested case class fields

Logic Programming and Type Constraints

  1. project logo

    fthomas / refined

    1660

    Refinement types for Scala

  2. project logo

    iltotore / iron

    340

    Strong type constraints for Scala

  3. project logo

    epfl-lara / stainless

    336

    Verification framework and tool for higher-order Scala programs

  4. project logo

    vivri / adjective

    92

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

Miscellaneous Utils

  1. project logo

    twitter / util

    2669

    Wonderful reusable code from Twitter

  2. project logo

    optics-dev / monocle

    1616

    Optics library for Scala

  3. project logo

    wvlet / airframe

    617

    Essential Building Blocks for Scala

  4. project logo

    7mind / izumi

    590

    Productivity-oriented collection of lightweight fancy stuff for Scala toolchain

Parsing

  1. project logo

    com-lihaoyi / fastparse

    1063

    Writing Fast Parsers Fast in Scala

  2. project logo

    scala / scala-parser-combinators

    634

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

  3. project logo

    tpolecat / atto

    357

    friendly little parsers

  4. project logo

    sirthias / parboiled

    1254

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

Programming Language Interfaces

  1. project logo

    scalablytyped / converter

    198

    Typescript to Scala.js converter

  2. project logo

    scala-native / scala-native-bindgen

    32

    Scala Native Binding Generator

Scala Language Extensions

  1. project logo

    milessabin / shapeless

    3344

    Generic programming for Scala

  2. project logo

    lloydmeta / enumeratum

    1170

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

  3. project logo

    scalalandio / chimney

    1064

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

  4. project logo

    typelevel / simulacrum

    940

    First class syntax support for type classes in Scala

Configuration, Logging, Testing and Monitoring

Command Line Parsing

  1. project logo

    scopt / scopt

    1417

    command line options parsing for Scala

  2. project logo

    bkirwi / decline

    617

    A composable command-line parser for Scala.

  3. project logo

    alexarchambault / case-app

    294

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

  4. project logo

    com-lihaoyi / mainargs

    167

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

Configuration and Environment

  1. project logo

    lightbend / config

    6032

    configuration library for JVM languages using HOCON files

  2. project logo

    pureconfig / pureconfig

    1418

    A boilerplate-free library for loading configuration files

  3. project logo

    vlovgr / ciris

    394

    Functional Configurations for Scala

  4. project logo

    zalando / grafter

    240

    Grafter is a library to configure and wire Scala applications

Logging

  1. project logo

    lightbend-labs / scala-logging

    896

    Convenient and performant logging library for Scala wrapping SLF4J.

  2. project logo

    outr / scribe

    485

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

  3. project logo

    lego / woof

    420

    A pure Scala 3 logging library with no reflection

  4. project logo

    typelevel / log4cats

    386

    Logging Tools For Interaction with cats-effect

Performance and Monitoring

  1. project logo

    kamon-io / kamon

    1388

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

  2. project logo

    sbt / sbt-jmh

    775

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

  3. project logo

    lucacanali / sparkmeasure

    606

    This is the development repository for sparkMeasure, a tool for performance troubleshooting of Apache Spark workloads. It simplifies the collection and analysis of Spark task and stage metrics data.

  4. project logo

    erikvanoosten / metrics-scala

    428

    The scala API for Dropwizard's Metrics.

Testing

  1. project logo

    gatling / gatling

    6132

    Modern Load Testing as Code

  2. project logo

    typelevel / scalacheck

    1908

    Property-based testing for Scala

  3. project logo

    holdenk / spark-testing-base

    1470

    Base classes to use when writing tests with Spark

  4. project logo

    scalatest / scalatest

    1122

    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

    4721

    sbt, the interactive build tool

  2. project logo

    com-lihaoyi / mill

    1929

    Your shiny new Java/Scala build tool!

  3. project logo

    scalacenter / bloop

    860

    Bloop is a build server and CLI tool to compile, test and run Scala fast from any editor or build tool.

  4. project logo

    virtuslab / scala-cli

    458

    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!)

Code Analysis

  1. project logo

    joernio / joern

    1608

    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

    1064

    Library to read, analyze, transform and generate Scala programs

  3. project logo

    scoverage / sbt-scoverage

    630

    sbt plugin for scoverage

  4. project logo

    lightbend / mima

    445

    A tool for catching binary incompatibility in Scala

Code Editors and Notebooks

  1. project logo

    scalameta / metals

    1959

    Scala language server with rich IDE features 🚀

  2. project logo

    almond-sh / almond

    1554

    A Scala kernel for Jupyter

  3. project logo

    polynote / polynote

    4454

    A better notebook for Scala (and more)

  4. project logo

    jetbrains / sbt-ide-settings

    57

    SBT plugin for tweaking various IDE settings

Code Formatting

  1. project logo

    scalameta / scalafmt

    1379

    Code formatter for Scala

  2. project logo

    sbt / sbt-scalariform

    259

    sbt plugin adding support for source code formatting using Scalariform

  3. project logo

    scalameta / sbt-scalafmt

    170

    sbt plugin for Scalafmt

  4. project logo

    lucidsoftware / neo-sbt-scalafmt

    150

    Scalafmt SBT plugin

Library Dependency Management

  1. project logo

    coursier / coursier

    1981

    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

    1097

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

  4. project logo

    rtimush / sbt-updates

    743

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

Linting and Refactoring

  1. project logo

    wartremover / wartremover

    1043

    Flexible Scala code linting tool

  2. project logo

    scalacenter / scalafix

    778

    Refactoring and linting tool for Scala

  3. project logo

    scalastyle / scalastyle

    681

    scalastyle

  4. project logo

    scapegoat-scala / scapegoat

    496

    Scala compiler plugin for static code analysis

Miscellaneous Tools

  1. project logo

    foundweekends / giter8

    1719

    a command line tool to apply templates defined on GitHub

  2. project logo

    spray / sbt-revolver

    839

    An SBT plugin for dangerously fast development turnaround in Scala

  3. project logo

    sbt / sbt-header

    190

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

  4. project logo

    tototoshi / sbt-musical

    63

    NO MUSIC, NO BUILD. Enjoy your compile time.

Packaging and Publishing

  1. project logo

    sbt / sbt-assembly

    1923

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

  2. project logo

    sbt / sbt-native-packager

    1578

    sbt Native Packager

  3. project logo

    sbt / sbt-release

    629

    A release plugin for sbt

  4. project logo

    xerial / sbt-pack

    486

    A sbt plugin for creating distributable Scala packages.

Printing and Debugging

  1. project logo

    com-lihaoyi / sourcecode

    499

    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

    211

    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

    78

    Scala macros for making debugging easier

Scripting and REPLs

  1. project logo

    com-lihaoyi / ammonite

    2575

    Scala Scripting

  2. project logo

    masseguillaume / scalakata2

    101

    Interactive Playground

  3. project logo

    scala / toolkit

    75

    The batteries-included Scala

  4. project logo

    dbdahl / rscala

    100

    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

    585

    doc/tutorial generator for scala

  2. project logo

    typelevel / laika

    400

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

  3. project logo

    scalameta / mdoc

    374

    Typechecked markdown documentation for Scala

  4. project logo

    lightbend / paradox

    241

    Markdown documentation

See also:

Images, Audio and Video

Mathematics, Finance, Data Science and Bioinformatics

Bioinformatics

  1. project logo

    bigdatagenomics / adam

    960

    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

    292

    Tools for working with genomic and high throughput sequencing data.

  3. project logo

    projectglow / glow

    248

    An open-source toolkit for large-scale genomic analysis

  4. project logo

    clulab / reach

    94

    Reach Biomedical Information Extraction

Cryptography and Hashing

  1. project logo

    wavesplatform / waves

    1169

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

  2. project logo

    hyperledger-labs / scorex

    544

    Scorex 2.0 Core

  3. project logo

    jmcardon / tsec

    352

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

  4. project logo

    input-output-hk / scrypto

    198

    Cryptographic primitives for Scala

Economy, Finance and Cryptocurrencies

  1. project logo

    bitcoin-s / bitcoin-s

    337

    Bitcoin Implementation in Scala

  2. project logo

    lambdista / money

    76

    Scala DSL for money-related operations

  3. project logo

    snowplow / scala-forex

    45

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

  4. project logo

    openquant / yahoofinancescala

    22

    A non-blocking Yahoo Finance Scala client

Natural Language Processing

  1. project logo

    johnsnowlabs / spark-nlp

    3522

    State of the Art Natural Language Processing

  2. project logo

    scalanlp / chalk

    259

    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

    3417

    Breeze is a numerical processing library for Scala.

  2. project logo

    typelevel / spire

    1744

    Powerful new number types and numeric abstractions for Scala.

  3. project logo

    vagmcs / optimus

    142

    Optimus is a mathematical programming library for Scala.

  4. project logo

    cascala / galileo

    67

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

Probability, Statistics and Machine Learning

  1. project logo

    apache / predictionio

    12552

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

  2. project logo

    microsoft / synapseml

    4880

    Simple and Distributed Machine Learning

  3. project logo

    salesforce / transmogrifai

    2221

    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

    dmlc / xgboost

    25064

    Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library, for Python, R, Java, Scala, C++ and more. Runs on single machine, Hadoop, Spark, Dask, Flink and DataFlow

Mobile, Desktop and Game Development

Operating System, Hardware and Robotics

Text, Formats and Compression

Archives and Compression

  1. project logo

    gekomad / scala-compress

    7

    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

    685

    CSV Reader/Writer for Scala

  2. project logo

    davenverse / cormorant

    90

    A CSV Handling Library for FP.

  3. project logo

    scalikejdbc / csvquery

    36

    A handy SQL runner to work with CSV files

  4. project logo

    zamblauskas / scala-csv-parser

    25

    CSV parser library.

JSON

  1. project logo

    circe / circe

    2442

    Yet another JSON library for Scala

  2. project logo

    json4s / json4s

    1464

    JSON library

  3. project logo

    spray / spray-json

    970

    A lightweight, clean and simple JSON implementation in Scala

  4. project logo

    plokhotnyuk / jsoniter-scala

    690

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

Markdown

  1. project logo

    foundweekends / pamflet

    123

    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

    288

    Programmable, Typesafe Document Generation

  2. project logo

    tomtung / latex2unicode

    33

    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

    467

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

  2. project logo

    allenai / science-parse

    538

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

  3. project logo

    cloudify / spdf

    200

    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

    1264

    Protocol buffer compiler for Scala.

  2. project logo

    scala / pickling

    833

    Fast, customizable, boilerplate-free pickling support for Scala

  3. project logo

    scodec / scodec

    799

    Scala combinator library for working with binary data

  4. project logo

    sksamuel / avro4s

    706

    Avro schema generation and serialization / deserialization for Scala

Text Manipulation

  1. project logo

    rockymadden / stringmetric

    485

    :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

    221

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

  3. project logo

    bizzabo / diff

    178

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

  4. project logo

    atry / fastring

    122

    Extremely fast string formatting

YAML

  1. project logo

    circe / circe-yaml

    138

    YAML parser for circe using SnakeYAML

  2. project logo

    jcazevedo / moultingyaml

    98

    Scala wrapper for SnakeYAML

  3. project logo

    virtuslab / scala-yaml

    68
  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

    365

    Library for building sbt plugins for the web

  2. project logo

    scalacenter / scalajs-bundler

    232
  3. project logo

    vmunier / sbt-web-scalajs

    191

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

  4. project logo

    irundaia / sbt-sassify

    66

    sbt-web plugin for Sass files

Authentication and Permissions

  1. project logo

    jaliss / securesocial

    1192

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

  2. project logo

    mohiva / play-silhouette

    820

    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

    535

    OAuth 2.0 server-side implementation written in Scala

  4. project logo

    softwaremill / akka-http-session

    439

    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

    hmrc / emailaddress

    36

    Micro-library for validating and obfuscating email addresses

Forms and Validation

  1. project logo

    wix-incubator / accord

    534

    Accord: A sane validation library for Scala

  2. project logo

    jto / validation

    193

    validation api extracted from play

  3. project logo

    krzemin / octopus

    150

    Scala library for boilerplate-free validation

  4. project logo

    typelevel / literally

    99

    Compile time validation of literal values built from strings

HTTP Servers and Clients

  1. project logo

    playframework / playframework

    12473

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

  2. project logo

    scalatra / scalatra

    2623

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

  3. project logo

    http4s / http4s

    2470

    A minimal, idiomatic Scala interface for HTTP

  4. project logo

    finagle / finch

    1597

    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

    osinka / scala-i18n

    41

    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

    32

    Internationalization (i18n) for Scala applications

Semantic Web

  1. project logo

    banana-rdf / banana-rdf

    294

    Banana RDF

  2. project logo

    phenoscape / scowl

    56

    A Scala DSL for programming with the OWL API.

Templating

  1. project logo

    scalate / scalate

    602

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

  2. project logo

    playframework / twirl

    529

    Twirl is Play's default template engine

  3. project logo

    mwunsch / handlebars.scala

    112

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

  4. project logo

    zalando / beard

    121

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

Third-Party APIs

  1. project logo

    bot4s / telegram

    404

    Telegram Bot API Wrapper for Scala

  2. project logo

    danielasfregola / twitter4s

    258

    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

    186

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

URLs and Routing

  1. project logo

    sparsetech / trail

    81

    Routing library for the Scala platform

  2. project logo

    raquo / waypoint

    81

    Efficient router for Laminar UI Library

  3. project logo

    sherpal / url-dsl

    28

    Tiny dsl library for path et parameters of urls

  4. project logo

    tulz-app / frontroute

    27

    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

    1619

    Facebook's React on Scala.JS

  2. project logo

    thoughtworksinc / binding.scala

    1580

    Reactive data-binding for Scala

  3. project logo

    raquo / laminar

    676

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

  4. project logo

    shadaj / slinky

    636

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

XML/HTML and DOM

  1. project logo

    com-lihaoyi / scalatags

    728

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

  2. project logo

    ruippeixotog / scala-scraper

    705

    A Scala library for scraping content from HTML pages

  3. project logo

    eed3si9n / scalaxb

    331

    scalaxb is an XML data binding tool for Scala.

  4. project logo

    scala-js / scala-js-dom

    304

    Statically typed DOM API for Scala.js

See also: