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

    1017

    Cassovary is a simple big graph processing library for the JVM

  2. project logo

    scala-graph / scala-graph

    545

    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

    538

    Data structures for pure functional programming in Scala

  4. project logo

    non / debox

    269

    Fast, deboxed, specialized data structures for Scala

Caching

  1. project logo

    cb372 / scalacache

    754

    Simple caching in Scala

  2. project logo

    blemale / scaffeine

    237

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

  3. project logo

    zio / zio-cache

    70

    A ZIO native cache with a simple and compositional interface

  4. project logo

    jcouyang / jujiu

    47

    Functional Scala Cache

Code Generation

  1. project logo

    sbt / sbt-buildinfo

    534

    I know this because build.sbt knows this.

  2. project logo

    thesamet / sbt-protoc

    157

    SBT plugin for generating code from Protocol Buffer using protoc

  3. project logo

    sbt / sbt-boilerplate

    109

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

  4. project logo

    fralken / sbt-swagger-codegen

    101

    sbt Plugin for Scala code generation for Swagger specs

Compilers

  1. project logo

    scala / scala

    13951

    Scala 2 compiler and standard library. For bugs, see scala/bug

  2. project logo

    lampepfl / dotty

    5148

    The Scala 3 compiler, also known as Dotty.

  3. project logo

    scala-js / scala-js

    4380

    Scala.js, the Scala to JavaScript compiler

  4. project logo

    scala-native / scala-native

    4248

    Your favorite language gets closer to bare metal.

Dependency Injection

  1. project logo

    softwaremill / macwire

    1189

    Lightweight and Nonintrusive Scala Dependency Injection Library

  2. project logo

    dickwall / subcut

    388

    Scala Uniquely Bound Classes Under Traits

  3. project logo

    codingwell / scala-guice

    339

    Scala extensions for Google Guice

  4. project logo

    scaldi / scaldi

    291

    Lightweight Scala Dependency Injection Library

Functionnal Programming and Category Theory

  1. project logo

    typelevel / cats

    4808

    Lightweight, modular, and extensible library for functional programming.

  2. project logo

    scalaz / scalaz

    4592

    Principled Functional Programming in Scala

  3. project logo

    precog / matryoshka

    796

    Generalized recursion schemes and traversals for Scala.

  4. project logo

    softwaremill / quicklens

    748

    Modify deeply nested case class fields

Logic Programming and Type Constraints

  1. project logo

    fthomas / refined

    1567

    Refinement types for Scala

  2. project logo

    iltotore / iron

    165

    Strong type constraints for Scala

  3. project logo

    epfl-lara / stainless

    300

    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

    2573

    Wonderful reusable code from Twitter

  2. project logo

    wvlet / airframe

    575

    Essential Building Blocks for Scala

  3. project logo

    7mind / izumi

    550

    Productivity-oriented collection of lightweight fancy stuff for Scala toolchain

  4. project logo

    jsuereth / scala-arm

    551

    This project aims to be the Scala Incubator project for Automatic-Resource-Management in the scala library

Parsing

  1. project logo

    com-lihaoyi / fastparse

    1013

    Writing Fast Parsers Fast in Scala

  2. project logo

    scala / scala-parser-combinators

    608

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

  3. project logo

    tpolecat / atto

    354

    friendly little parsers

  4. project logo

    sirthias / parboiled

    1223

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

Programming Language Interfaces

  1. project logo

    scalablytyped / converter

    152

    Typescript to Scala.js converter

  2. project logo

    scala-native / scala-native-bindgen

    29

    Scala Native Binding Generator

Scala Language Extensions

  1. project logo

    milessabin / shapeless

    3304

    Generic programming for Scala

  2. project logo

    lloydmeta / enumeratum

    1127

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

  3. project logo

    typelevel / simulacrum

    936

    First class syntax support for type classes in Scala

  4. project logo

    scalalandio / chimney

    898

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

Configuration, Logging, Testing and Monitoring

Command Line Parsing

  1. project logo

    scopt / scopt

    1385

    command line options parsing for Scala

  2. project logo

    bkirwi / decline

    578

    A composable command-line parser for Scala.

  3. project logo

    alexarchambault / case-app

    276

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

  4. project logo

    com-lihaoyi / mainargs

    148

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

Configuration and Environment

  1. project logo

    lightbend / config

    5798

    configuration library for JVM languages using HOCON files

  2. project logo

    pureconfig / pureconfig

    1331

    A boilerplate-free library for loading configuration files

  3. project logo

    vlovgr / ciris

    370

    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

    885

    Convenient and performant logging library for Scala wrapping SLF4J.

  2. project logo

    outr / scribe

    428

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

  3. project logo

    lego / woof

    400

    A pure Scala 3 logging library with no reflection

  4. project logo

    typelevel / log4cats

    341

    Logging Tools For Interaction with cats-effect

Performance and Monitoring

  1. project logo

    kamon-io / kamon

    1363

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

  2. project logo

    sbt / sbt-jmh

    748

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

  3. project logo

    lucacanali / sparkmeasure

    515

    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

    423

    The scala API for Dropwizard's Metrics.

Testing

  1. project logo

    gatling / gatling

    5756

    Modern Load Testing as Code

  2. project logo

    typelevel / scalacheck

    1837

    Property-based testing for Scala

  3. project logo

    holdenk / spark-testing-base

    1397

    Base classes to use when writing tests with Spark

  4. project logo

    scalatest / scalatest

    1075

    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

    4599

    sbt, the interactive build tool

  2. project logo

    com-lihaoyi / mill

    1810

    Your shiny new Java/Scala build tool!

  3. project logo

    scalacenter / bloop

    829

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

  4. project logo

    build-server-protocol / build-server-protocol

    251

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

Code Analysis

  1. project logo

    scalameta / scalameta

    1008

    Library to read, analyze, transform and generate Scala programs

  2. project logo

    joernio / joern

    1135

    Open-source code analysis platform for C/C++/Java/Binary/Javascript/Python/Kotlin based on code property graphs

  3. project logo

    scoverage / sbt-scoverage

    607

    sbt plugin for scoverage

  4. project logo

    lightbend / mima

    414

    A tool for catching binary incompatibility in Scala

Code Editors and Notebooks

  1. project logo

    scalameta / metals

    1806

    Scala language server with rich IDE features 🚀

  2. project logo

    almond-sh / almond

    1468

    A Scala kernel for Jupyter

  3. project logo

    polynote / polynote

    4374

    A better notebook for Scala (and more)

  4. project logo

    jetbrains / sbt-ide-settings

    55

    SBT plugin for tweaking various IDE settings

Code Formatting

  1. project logo

    scalameta / scalafmt

    1313

    Code formatter for Scala

  2. project logo

    sbt / sbt-scalariform

    260

    sbt plugin adding support for source code formatting using Scalariform

  3. project logo

    lucidsoftware / neo-sbt-scalafmt

    154

    Scalafmt SBT plugin

  4. project logo

    scalameta / sbt-scalafmt

    147

    sbt plugin for Scalafmt

Library Dependency Management

  1. project logo

    coursier / coursier

    1925

    Pure Scala Artifact Fetching

  2. project logo

    sbt / sbt-dependency-graph

    1235

    sbt plugin to create a dependency graph for your project

  3. project logo

    scala-steward-org / scala-steward

    1051

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

  4. project logo

    rtimush / sbt-updates

    717

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

Linting and Refactoring

  1. project logo

    wartremover / wartremover

    1014

    Flexible Scala code linting tool

  2. project logo

    scalastyle / scalastyle

    679

    scalastyle

  3. project logo

    scalacenter / scalafix

    716

    Refactoring and linting tool for Scala

  4. project logo

    scapegoat-scala / scapegoat

    469

    Scala compiler plugin for static code analysis

Miscellaneous Tools

  1. project logo

    foundweekends / giter8

    1691

    a command line tool to apply templates defined on GitHub

  2. project logo

    spray / sbt-revolver

    802

    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

    62

    NO MUSIC, NO BUILD. Enjoy your compile time.

Packaging and Publishing

  1. project logo

    sbt / sbt-assembly

    1881

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

  2. project logo

    sbt / sbt-native-packager

    1548

    sbt Native Packager

  3. project logo

    sbt / sbt-release

    619

    A release plugin for sbt

  4. project logo

    xerial / sbt-pack

    468

    A sbt plugin for creating distributable Scala packages.

Printing and Debugging

  1. project logo

    com-lihaoyi / sourcecode

    485

    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

    188

    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

    77

    Scala macros for making debugging easier

Scripting and REPLs

  1. project logo

    com-lihaoyi / ammonite

    2536

    Scala Scripting

  2. project logo

    masseguillaume / scalakata2

    101

    Interactive Playground

  3. project logo

    dbdahl / rscala

    97

    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.

  4. project logo

    woshilaiceshide / scala-web-repl

    40

    A scala repl which uses a web terminal as its interactive console, and it can be used as an inspector/cli for running applications, a hot code modification mechanism.

Static Sites and Documentation

  1. project logo

    tpolecat / tut

    586

    doc/tutorial generator for scala

  2. project logo

    scalameta / mdoc

    353

    Typechecked markdown documentation for Scala

  3. project logo

    planet42 / laika

    346

    Text Markup Transformer for sbt and Scala applications, transforming Markdown and reStructuredText to HTML, EPUB and PDF

  4. project logo

    lightbend / paradox

    243

    Markdown documentation

See also:

Images, Audio and Video

Mathematics, Finance, Data Science and Bioinformatics

Bioinformatics

  1. project logo

    bigdatagenomics / adam

    936

    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

    253

    Tools for working with genomic and high throughput sequencing data.

  3. project logo

    projectglow / glow

    219

    An open-source toolkit for large-scale genomic analysis

  4. project logo

    clulab / reach

    90

    Reach Biomedical Information Extraction

Cryptography and Hashing

  1. project logo

    wavesplatform / waves

    1161

    ⛓️ 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

    193

    Cryptographic primitives for Scala

Economy, Finance and Cryptocurrencies

  1. project logo

    bitcoin-s / bitcoin-s

    310

    Bitcoin Implementation in Scala

  2. project logo

    lambdista / money

    75

    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

    synesso / scala-stellar-sdk

    22

    Scala SDK for the Stellar network

Natural Language Processing

  1. project logo

    johnsnowlabs / spark-nlp

    3023

    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

    417

    Natural Language Processors

  4. project logo

    knowitall / nlptools

    100

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

Numerical and Symbolic Computing

  1. project logo

    scalanlp / breeze

    3384

    Breeze is a numerical processing library for Scala.

  2. project logo

    typelevel / spire

    1715

    Powerful new number types and numeric abstractions for Scala.

  3. project logo

    vagmcs / optimus

    134

    Optimus is a mathematical programming library for Scala.

  4. project logo

    cascala / galileo

    66

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

Probability, Statistics and Machine Learning

  1. project logo

    apache / predictionio

    12540

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

  2. project logo

    microsoft / synapseml

    3848

    Simple and Distributed Machine Learning

  3. project logo

    salesforce / transmogrifai

    2144

    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

    23533

    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

    662

    CSV Reader/Writer for Scala

  2. project logo

    davenverse / cormorant

    89

    A CSV Handling Library for FP.

  3. project logo

    scalikejdbc / csvquery

    35

    A handy SQL runner to work with CSV files

  4. project logo

    zamblauskas / scala-csv-parser

    24

    CSV parser library.

JSON

  1. project logo

    circe / circe

    2349

    Yet another JSON library for Scala

  2. project logo

    json4s / json4s

    1438

    JSON library

  3. project logo

    spray / spray-json

    970

    A lightweight, clean and simple JSON implementation in Scala

  4. project logo

    hseeberger / akka-http-json

    580

    Integrate some of the best JSON libs in Scala with Akka HTTP

Markdown

  1. project logo

    foundweekends / pamflet

    120

    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

    289

    Programmable, Typesafe Document Generation

  2. project logo

    tomtung / latex2unicode

    31

    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

    314

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

  2. project logo

    allenai / science-parse

    460

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

  3. project logo

    cloudify / spdf

    198

    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

    25

    A PDF module for Play Framework 2 (Scala)

Serialization

  1. project logo

    scalapb / scalapb

    1229

    Protocol buffer compiler for Scala.

  2. project logo

    scala / pickling

    836

    Fast, customizable, boilerplate-free pickling support for Scala

  3. project logo

    scodec / scodec

    779

    Scala combinator library for working with binary data

  4. project logo

    com-lihaoyi / upickle

    639

    uPickle: a simple, fast, dependency-free JSON & Binary (MessagePack) serialization library for Scala

Text Manipulation

  1. project logo

    rockymadden / stringmetric

    481

    :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

    208

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

  3. project logo

    bizzabo / diff

    179

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

  4. project logo

    atry / fastring

    123

    Extremely fast string formatting

YAML

  1. project logo

    circe / circe-yaml

    122

    YAML parser for circe using SnakeYAML

  2. project logo

    jcazevedo / moultingyaml

    96

    Scala wrapper for SnakeYAML

  3. project logo

    virtuslab / scala-yaml

    51
  4. project logo

    jodersky / yamlesque

    5

    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

    359

    Library for building sbt plugins for the web

  2. project logo

    scalacenter / scalajs-bundler

    231
  3. project logo

    vmunier / sbt-web-scalajs

    187

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

  4. project logo

    irundaia / sbt-sassify

    67

    sbt-web plugin for Sass files

Authentication and Permissions

  1. project logo

    jaliss / securesocial

    1195

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

  2. project logo

    mohiva / play-silhouette

    824

    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

    531

    OAuth 2.0 server-side implementation written in Scala

  4. project logo

    softwaremill / akka-http-session

    443

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

Emailing

  1. project logo

    dmurvihill / courier

    217

    send electronic mail with scala

  2. project logo

    playframework / play-mailer

    250

    Play mailer plugin

  3. project logo

    spinoco / fs2-mail

    42

    asynchronous library for sending and receiving mail via fs2._

  4. project logo

    hmrc / emailaddress

    34

    Micro-library for validating and obfuscating email addresses

Forms and Validation

  1. project logo

    wix / accord

    531

    Accord: A sane validation library for Scala

  2. project logo

    jto / validation

    192

    validation api extracted from play

  3. project logo

    krzemin / octopus

    147

    Scala library for boilerplate-free validation

  4. project logo

    typelevel / literally

    95

    Compile time validation of literal values built from strings

HTTP Servers and Clients

  1. project logo

    playframework / playframework

    12274

    Play Framework

  2. project logo

    scalatra / scalatra

    2572

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

  3. project logo

    http4s / http4s

    2354

    A minimal, idiomatic Scala interface for HTTP

  4. project logo

    finagle / finch

    1582

    Scala combinator library for building Finagle HTTP services

Internationalization

  1. project logo

    makkarpov / scalingua

    52

    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

    37

    GNU Gettext .po file loader for Scala

  4. project logo

    taig / babel

    25

    Internationalization (i18n) for Scala applications

Semantic Web

  1. project logo

    banana-rdf / banana-rdf

    287

    Banana RDF

  2. project logo

    phenoscape / scowl

    51

    A Scala DSL for programming with the OWL API.

Templating

  1. project logo

    scalate / scalate

    595

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

  2. project logo

    playframework / twirl

    519

    Twirl is Play's default template engine

  3. project logo

    zalando / beard

    124

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

  4. project logo

    mwunsch / handlebars.scala

    111

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

Third-Party APIs

  1. project logo

    bot4s / telegram

    383

    Telegram Bot API Wrapper for Scala

  2. project logo

    danielasfregola / twitter4s

    260

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

  3. project logo

    47degrees / github4s

    226

    A GitHub API wrapper written in Scala

  4. project logo

    slack-scala-client / slack-scala-client

    184

    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

    60

    Efficient router for Laminar UI Library

  3. project logo

    sherpal / url-dsl

    23

    Tiny dsl library for path et parameters of urls

  4. project logo

    voltir / route.rx

    13

    Macro magic for reactive urls in Scala.js

Web Frontend

  1. project logo

    japgolly / scalajs-react

    1602

    Facebook's React on Scala.JS

  2. project logo

    thoughtworksinc / binding.scala

    1562

    Reactive data-binding for Scala

  3. project logo

    chandu0101 / sri

    635

    Build truly native cross platform (web,ios,android) apps using scalajs and react, react-native ,This project moved to new organization : https://github.com/scalajs-react-interface/sri#sri, new chat room : https://gitter.im/scalajs-react-interface/sri

  4. project logo

    shadaj / slinky

    605

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

XML/HTML and DOM

  1. project logo

    com-lihaoyi / scalatags

    710

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

  2. project logo

    ruippeixotog / scala-scraper

    686

    A Scala library for scraping content from HTML pages

  3. project logo

    eed3si9n / scalaxb

    324

    scalaxb is an XML data binding tool for Scala.

  4. project logo

    scala-js / scala-js-dom

    279

    Statically typed DOM API for Scala.js

See also: