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

    1039

    Cassovary is a simple big graph processing library for the JVM

  2. project logo

    typelevel / cats-collections

    555

    Data structures for pure functional programming in Scala

  3. project logo

    scala-graph / scala-graph

    556

    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

    269

    Fast, deboxed, specialized data structures for Scala

Caching

  1. project logo

    cb372 / scalacache

    767

    Simple caching in Scala

  2. project logo

    blemale / scaffeine

    259

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

  3. project logo

    zio / zio-cache

    84

    A ZIO native cache with a simple and compositional interface

  4. project logo

    jcouyang / jujiu

    57

    Functional Scala Cache

Code Generation

  1. project logo

    sbt / sbt-buildinfo

    544

    I know this because build.sbt knows this.

  2. project logo

    disneystreaming / smithy4s

    324

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

  3. project logo

    thesamet / sbt-protoc

    165

    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

    14267

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

  2. project logo

    scala / scala3

    5668

    The Scala 3 compiler, also known as Dotty.

  3. project logo

    scala-js / scala-js

    4535

    Scala.js, the Scala to JavaScript compiler

  4. project logo

    scala-native / scala-native

    4432

    Your favorite language gets closer to bare metal.

Dependency Injection

  1. project logo

    softwaremill / macwire

    1253

    Lightweight and Nonintrusive Scala Dependency Injection Library

  2. project logo

    dickwall / subcut

    387

    Scala Uniquely Bound Classes Under Traits

  3. project logo

    codingwell / scala-guice

    340

    Scala extensions for Google Guice

  4. project logo

    scaldi / scaldi

    287

    Lightweight Scala Dependency Injection Library

Functionnal Programming and Category Theory

  1. project logo

    typelevel / cats

    5161

    Lightweight, modular, and extensible library for functional programming.

  2. project logo

    scalaz / scalaz

    4655

    Principled Functional Programming in Scala

  3. project logo

    softwaremill / quicklens

    810

    Modify deeply nested case class fields

  4. project logo

    precog / matryoshka

    809

    Generalized recursion schemes and traversals for Scala.

Logic Programming and Type Constraints

  1. project logo

    fthomas / refined

    1678

    Refinement types for Scala

  2. project logo

    iltotore / iron

    404

    Strong type constraints for Scala

  3. project logo

    epfl-lara / stainless

    347

    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

    2677

    Wonderful reusable code from Twitter

  2. project logo

    optics-dev / monocle

    1630

    Optics library for Scala

  3. project logo

    7mind / izumi

    601

    Productivity-oriented collection of lightweight fancy stuff for Scala toolchain

  4. project logo

    wvlet / airframe

    619

    Essential Building Blocks for Scala

Parsing

  1. project logo

    com-lihaoyi / fastparse

    1072

    Writing Fast Parsers Fast in Scala

  2. project logo

    scala / scala-parser-combinators

    641

    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

    1262

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

Programming Language Interfaces

  1. project logo

    scalablytyped / converter

    207

    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

    3360

    Generic programming for Scala

  2. project logo

    lloydmeta / enumeratum

    1176

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

  3. project logo

    scalalandio / chimney

    1097

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

  4. project logo

    typelevel / simulacrum

    936

    First class syntax support for type classes in Scala

Configuration, Logging, Testing and Monitoring

Command Line Parsing

  1. project logo

    scopt / scopt

    1424

    command line options parsing for Scala

  2. project logo

    bkirwi / decline

    632

    A composable command-line parser for Scala.

  3. project logo

    alexarchambault / case-app

    293

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

  4. project logo

    com-lihaoyi / mainargs

    174

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

Configuration and Environment

  1. project logo

    lightbend / config

    6085

    configuration library for JVM languages using HOCON files

  2. project logo

    pureconfig / pureconfig

    1448

    A boilerplate-free library for loading configuration files

  3. project logo

    vlovgr / ciris

    396

    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

    898

    Convenient and performant logging library for Scala wrapping SLF4J.

  2. project logo

    outr / scribe

    503

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

  3. project logo

    lego / woof

    427

    A pure Scala 3 logging library with no reflection

  4. project logo

    typelevel / log4cats

    390

    Logging Tools For Interaction with cats-effect

Performance and Monitoring

  1. project logo

    kamon-io / kamon

    1393

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

  2. project logo

    sbt / sbt-jmh

    780

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

  3. project logo

    lucacanali / sparkmeasure

    640

    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

    425

    The scala API for Dropwizard's Metrics.

Testing

  1. project logo

    gatling / gatling

    6242

    Modern Load Testing as Code

  2. project logo

    typelevel / scalacheck

    1930

    Property-based testing for Scala

  3. project logo

    holdenk / spark-testing-base

    1492

    Base classes to use when writing tests with Spark

  4. project logo

    scalatest / scalatest

    1138

    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

    4749

    sbt, the interactive build tool

  2. project logo

    com-lihaoyi / mill

    1958

    Your shiny new Java/Scala build tool!

  3. project logo

    scalacenter / bloop

    871

    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

    502

    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

    1766

    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

    1087

    Library to read, analyze, transform and generate Scala programs

  3. project logo

    scoverage / sbt-scoverage

    637

    sbt plugin for scoverage

  4. project logo

    lightbend / mima

    446

    A tool for catching binary incompatibility in Scala

Code Editors and Notebooks

  1. project logo

    scalameta / metals

    2017

    Scala language server with rich IDE features 🚀

  2. project logo

    almond-sh / almond

    1561

    A Scala kernel for Jupyter

  3. project logo

    polynote / polynote

    4483

    A better notebook for Scala (and more)

  4. project logo

    jetbrains / sbt-ide-settings

    61

    SBT plugin for tweaking various IDE settings

Code Formatting

  1. project logo

    scalameta / scalafmt

    1397

    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

    186

    sbt plugin for Scalafmt

  4. project logo

    lucidsoftware / neo-sbt-scalafmt

    149

    Scalafmt SBT plugin

Library Dependency Management

  1. project logo

    coursier / coursier

    2007

    Pure Scala Artifact Fetching

  2. project logo

    sbt / sbt-dependency-graph

    1240

    sbt plugin to create a dependency graph for your project

  3. project logo

    scala-steward-org / scala-steward

    1121

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

  4. project logo

    rtimush / sbt-updates

    755

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

Linting and Refactoring

  1. project logo

    wartremover / wartremover

    1059

    Flexible Scala code linting tool

  2. project logo

    scalacenter / scalafix

    801

    Refactoring and linting tool for Scala

  3. project logo

    scalastyle / scalastyle

    676

    scalastyle

  4. project logo

    scapegoat-scala / scapegoat

    510

    Scala compiler plugin for static code analysis

Miscellaneous Tools

  1. project logo

    foundweekends / giter8

    1729

    a command line tool to apply templates defined on GitHub

  2. project logo

    spray / sbt-revolver

    840

    An SBT plugin for dangerously fast development turnaround in Scala

  3. project logo

    sbt / sbt-header

    186

    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

    1932

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

  2. project logo

    sbt / sbt-native-packager

    1580

    sbt Native Packager

  3. project logo

    sbt / sbt-release

    639

    A release plugin for sbt

  4. project logo

    xerial / sbt-pack

    493

    A sbt plugin for creating distributable Scala packages.

Printing and Debugging

  1. project logo

    com-lihaoyi / sourcecode

    504

    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

    218

    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

    79

    Scala macros for making debugging easier

Scripting and REPLs

  1. project logo

    com-lihaoyi / ammonite

    2579

    Scala Scripting

  2. project logo

    masseguillaume / scalakata2

    98

    Interactive Playground

  3. project logo

    scala / toolkit

    80

    The batteries-included Scala

  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

    583

    doc/tutorial generator for scala

  2. project logo

    typelevel / laika

    403

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

  3. project logo

    scalameta / mdoc

    385

    Typechecked markdown documentation for Scala

  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

    967

    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

    304

    Tools for working with genomic and high throughput sequencing data.

  3. project logo

    projectglow / glow

    257

    An open-source toolkit for large-scale genomic analysis

  4. project logo

    clulab / reach

    96

    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

    344

    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

    23

    A non-blocking Yahoo Finance Scala client

Natural Language Processing

  1. project logo

    johnsnowlabs / spark-nlp

    3661

    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

    419

    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

    3432

    Breeze is a numerical processing library for Scala.

  2. project logo

    typelevel / spire

    1755

    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

    68

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

Probability, Statistics and Machine Learning

  1. project logo

    apache / predictionio

    12548

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

  2. project logo

    microsoft / synapseml

    4963

    Simple and Distributed Machine Learning

  3. project logo

    salesforce / transmogrifai

    2225

    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

    25530

    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

    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

    684

    CSV Reader/Writer for Scala

  2. project logo

    davenverse / cormorant

    91

    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

    2470

    Yet another JSON library for Scala

  2. project logo

    json4s / json4s

    1466

    JSON library

  3. project logo

    spray / spray-json

    970

    A lightweight, clean and simple JSON implementation in Scala

  4. project logo

    plokhotnyuk / jsoniter-scala

    703

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

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

    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

    524

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

  2. project logo

    allenai / science-parse

    568

    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

    1281

    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

    716

    Avro schema generation and serialization / deserialization for Scala

Text Manipulation

  1. project logo

    rockymadden / stringmetric

    484

    :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

    223

    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

    124

    Extremely fast string formatting

YAML

  1. project logo

    circe / circe-yaml

    137

    YAML parser for circe using SnakeYAML

  2. project logo

    jcazevedo / moultingyaml

    98

    Scala wrapper for SnakeYAML

  3. project logo

    virtuslab / scala-yaml

    76
  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

    366

    Library for building sbt plugins for the web

  2. project logo

    scalacenter / scalajs-bundler

    232
  3. project logo

    vmunier / sbt-web-scalajs

    192

    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

    1191

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

  2. project logo

    mohiva / play-silhouette

    816

    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

    536

    OAuth 2.0 server-side implementation written in Scala

  4. project logo

    softwaremill / akka-http-session

    438

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

Emailing

  1. project logo

    dmurvihill / courier

    220

    send electronic mail with scala

  2. project logo

    playframework / play-mailer

    248

    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

    532

    Accord: A sane validation library for Scala

  2. project logo

    jto / validation

    192

    validation api extracted from play

  3. project logo

    krzemin / octopus

    150

    Scala library for boilerplate-free validation

  4. project logo

    typelevel / literally

    102

    Compile time validation of literal values built from strings

HTTP Servers and Clients

  1. project logo

    playframework / playframework

    12504

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

  2. project logo

    scalatra / scalatra

    2631

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

  3. project logo

    http4s / http4s

    2503

    A minimal, idiomatic Scala interface for HTTP

  4. project logo

    finagle / finch

    1594

    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

    33

    Internationalization (i18n) for Scala applications

Semantic Web

  1. project logo

    banana-rdf / banana-rdf

    295

    Banana RDF

  2. project logo

    phenoscape / scowl

    54

    A Scala DSL for programming with the OWL API.

Templating

  1. project logo

    scalate / scalate

    605

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

  2. project logo

    playframework / twirl

    536

    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

    401

    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

    228

    A GitHub API wrapper written in Scala

  4. project logo

    slack-scala-client / slack-scala-client

    185

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

URLs and Routing

  1. project logo

    raquo / waypoint

    87

    Efficient router for Laminar UI Library

  2. project logo

    sparsetech / trail

    81

    Routing library for the Scala platform

  3. project logo

    sherpal / url-dsl

    31

    Tiny dsl library for path et parameters of urls

  4. project logo

    tulz-app / frontroute

    30

    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

    1631

    Facebook's React on Scala.JS

  2. project logo

    thoughtworksinc / binding.scala

    1583

    Reactive data-binding for Scala

  3. project logo

    raquo / laminar

    711

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

  4. project logo

    shadaj / slinky

    641

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

XML/HTML and DOM

  1. project logo

    com-lihaoyi / scalatags

    731

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

  2. project logo

    ruippeixotog / scala-scraper

    712

    A Scala library for scraping content from HTML pages

  3. project logo

    eed3si9n / scalaxb

    332

    scalaxb is an XML data binding tool for Scala.

  4. project logo

    scala-js / scala-js-dom

    311

    Statically typed DOM API for Scala.js

See also: