Skip to main content

Awesome Scala

A community driven list of useful Scala libraries, frameworks and software. This is not a catalog of all the libraries, just a starting point for your explorations. Inspired by awesome-python. Other amazingly awesome lists can be found in the awesome-awesomeness list.

Also awesome is Scaladex, the searchable, tagged, and centralized index of Scala libraries.

Projects with over 500 stargazers are in bold.

Contributing

Your contributions are always welcome! Please submit a pull request or create an issue to add a new framework, library or software to the list. Do not submit a project that hasn’t been updated in the past 6 months or is not awesome.

Don't modify README.md in your pull request. It is automatically generated. Modify template.md instead.

Table of Contents

Archive and Compression

NameDescriptionGitHub Activity
SevenZ4SSevenZip library for Scala, easy to use.

Artificial Intelligence

NameDescriptionGitHub Activity
cilibTypesafe, purely functional Computational Intelligence

Database

Database access libraries in Scala.

NameDescriptionGitHub Activity
akka-persistence-gcp-datastoreakka-persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode.
anormThe Anorm database library
casbahCasbah is now officially end-of-life (EOL).
clickhouse-scala-clientClickhouse Scala Client with Reactive Streams support
couchbase-jvm-clientsThe Couchbase Monorepo for JVM Clients: Java, Scala, io-core…
couchdb-scalaA purely functional Scala client for CouchDB
doobieFunctional JDBC layer for Scala.
elastic4sElasticsearch Scala Client - Reactive, Non Blocking, Type Safe, HTTP Client
etcd4sScala etcd client implementing V3 APIs
finagle-postgresPostgreSQL protocol support for Finagle
laserdiscA Future-free Fs2 native pure FP Redis client
mysql-binlog-streamNone
longevityA Persistence Framework for Scala and NoSQL
lucene4sLight-weight convenience wrapper around Lucene to simplify complex tasks and add Scala sugar.
mapperdaoA Scala ORM library
morpheusReactive type-safe Scala driver for SQL databases
neotypesScala lightweight, type-safe, asynchronous driver for neo4j
phantomSchema safe, type-safe, reactive Scala driver for Cassandra/Datastax Enterprise
pulsar4sIdiomatic, typesafe, and reactive Scala client for Apache Pulsar
zio-quillCompile-time Language Integrated Queries for Scala
reactivecouchbase-rs-coreNew ReactiveCouchbase driver using reactive-streams
ReactiveMongo🍃 Non-blocking, Reactive MongoDB Driver for Scala
rediscalaNon-blocking, Reactive Redis driver for Scala (with Sentinel support)
relatePerformant database access in Scala
salatSalat is a simple serialization library for case classes.
sangriaScala GraphQL implementation
scala-activerecordActiveRecord-like ORM library for Scala
scala-forkliftType-safe data migration tool for Slick, Git and beyond.
scala-redisA scala library for connecting to a redis server, or a cluster of redis nodes using consistent hashing on the client side.
scala-sqlscala SQL api
scalarelationalType-Safe framework for defining, modifying, and querying SQL databases
scalikejdbcA tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs.
scanamoSimpler DynamoDB access for Scala
scredisNon-blocking, ultra-fast Scala Redis client built on top of Akka IO, used in production at Livestream
scruidScala + Druid: Scruid. A library that allows you to compose queries in Scala, and parse the result back into typesafe classes.
shadeMemcached client for Scala
slickScala Language Integrated Connection Kit. Slick is a modern database query and access library for Scala
slick-pgSlick extensions for PostgreSQL
squerylA Scala DSL for talking with databases with minimum verbosity and maximum type safety
moleculeNon-blocking asynchronous domain-customizable database query language for Scala and Scala.js against the Datomic database.
zio-redisA ZIO-based redis client
skunkA data access library for Scala + Postgres.
kvsHighly available distributed strong eventual consistent and sequentially consistent storage with feeds and search

Messaging

NameDescriptionGitHub Activity
op-rabbitThe Opinionated RabbitMQ Library for Scala and Akka

Graphical User Interfaces

Libraries for creation of graphical user interfaces

NameDescriptionGitHub Activity
scalafxScalaFX simplifies creation of JavaFX-based user interfaces in Scala

Web Frameworks

Scala frameworks for web development.

NameDescriptionGitHub Activity
analogweb-scalaTiny High Performance HTTP Server for Scala
chaosA lightweight framework for writing REST services in Scala.
caskCask: a Scala HTTP micro-framework
colossusI/O and Microservice library for Scala
finatraFast, testable, Scala services built on TwitterServer and Finagle
frameworkLift Framework
peregrineAsync lightweight Scala web framework
playframeworkPlay Framework
pageletsA module for the Play Framework to build highly modular applications
reactiveA simple FRP library and a web UI framework built on it
scalajs-reactFacebook's React on Scala.JS
scalatraTiny Scala high-performance, async web framework, inspired by Sinatra
skinny-framework🚝 "Scala on Rails" - A full-stack web app framework for rapid development in Scala
unfilteredA toolkit for servicing HTTP requests in Scala
xitrumAsync and clustered Scala web framework and HTTP(S) server
youiNext generation user interface and application development in Scala and Scala.js for web, mobile, and desktop.

Reactive Web Frameworks

Scala libraries for Reactive Web development

NameDescriptionGitHub Activity
Binding.scalaReactive data-binding for Scala
korolevSingle Page Applications running on the server side.
udash-coreScala framework for building beautiful and maintainable web applications.
vertx-lang-scalaVert.x for Scala

Data Binding and Validation

Scala libraries for data binding and validation

NameDescriptionGitHub Activity
accordAccord: A sane validation library for Scala
dupinMinimal, idiomatic, customizable validation Scala library.
octopusScala library for boilerplate-free validation
vetoIf you don't agree with the data

i18n

Scala libraries for i18n.

NameDescriptionGitHub Activity
scala-xgettextScala compiler plugin that acts like GNU xgettext command to extract i18n strings in Scala source code files to Gettext .po file
scaposerGNU Gettext .po file loader for Scala

Authentication

Libraries for implementing authentications schemes.

NameDescriptionGitHub Activity
akka-http-sessionWeb & mobile client-side akka-http sessions, with optional JWT support
aws-request-signerScala library to sign HTTP requests to AWS services.
OAuth2-mock-playAn implementation of an OAuth2 server designed for mocking/testing
play-googleauthSimple play module for authenticating against Google
play-pac4jSecurity library for Play framework 2 in Java and Scala: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
play2-authPlay2.x Authentication and Authorization module
scala-oauth2-providerOAuth 2.0 server-side implementation written in Scala
securesocialA module that provides OAuth, OAuth2 and OpenID authentication for Play Framework applications

Cryptography

Cryptography and Encryption Libraries.

NameDescriptionGitHub Activity
scryptoCryptographic primitives for Scala
tsecType-safe general-cryptography library - https://jmcardon.github.io/tsec/
joseExtensible JOSE library for Scala

Testing

Libraries for code testing.

NameDescriptionGitHub Activity
cornichonScala DSL for testing HTTP JSON API
gatlingModern Load Testing as Code
minitestThe super light testing library for Scala and Scala.js
mockito-scalaMockito for Scala language
munitScala testing library with actionable errors and extensible APIs
scalacheckProperty-based testing for Scala
scalameterMicrobenchmarking and performance regression testing framework for the JVM platform.
ScalaMockNative Scala mocking framework
scalapropsproperty based testing library for Scala
scalatestA testing tool for Scala and Java developers
scaliveConnect a Scala REPL to running JVM processes without any prior setup
specs2Software Specifications for Scala
stryker4sMutation testing for Scala
weaver-testA test framework that runs everything in parallel.
testcontainers-scalaDocker containers for testing in scala
utestA simple testing framework for Scala

JSON

Libraries for work with json.

NameDescriptionGitHub Activity
argonautPurely functional JSON parser and library in scala.
borerEfficient CBOR and JSON (de)serialization in Scala
circeYet another JSON library for Scala
diffsonA scala diff/patch library for Json
jackson-module-scalaAdd-on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes
jawnJawn is for parsing jay-sawn (JSON)
json4sJSON library
jsoniter-scalaScala macros for compile-time generation of safe and ultra-fast JSON codecs
jsonPersist-Json, a Fast Json Parser Written in Scala
ninny-jsonJSON typeclasses that know the difference between null and absent fields
play-jsonThe Play JSON library
pushkaABANDONED Pure Scala serialization library with annotations
sbt-jsonsbt plugin that generates Scala case classes for easy, statically typed and implicit access of JSON data e.g. from API responses
scala-jsonapiScala support library for integrating the JSON API spec with Spray, Play! or Circe
ScalaJackFast JSON parser/generator for Scala
spray-jsonA lightweight, clean and simple JSON implementation in Scala
zio-jsonFast, secure JSON library with tight ZIO integration.

YAML

Libraries for work with YAML.

NameDescriptionGitHub Activity
moultingyamlScala wrapper for SnakeYAML

CSV

Libraries for work with CSV.

NameDescriptionGitHub Activity
fm-flatfileScala Library for Reading Flat File Data (CSV/TSV/XLS/XLSX)
kantan.csvCSV handling library for Scala
scala-csvCSV Reader/Writer for Scala
spataFunctional, stream-based CSV processor for Scala

Serialization

Libraries for serializing and deserializing data for storage or transport.

NameDescriptionGitHub Activity
avro-codegenScala code generator for Avro schemas.
borerEfficient CBOR and JSON (de)serialization in Scala
avro4sAvro schema generation and serialization / deserialization for Scala
chillScala extensions for the Kryo serialization library
msgpack-scalaMessagePack serializer implementation for Scala / msgpack.org[Scala]
ScalaPBProtocol buffer compiler for Scala.
scodecScala combinator library for working with binary data
scroogeA Thrift parser/generator
upickleuPickle: a simple, fast, dependency-free JSON & Binary (MessagePack) serialization library for Scala
protoLightweight and fast serialization library for Scala 2/3 based on Protocol Buffers with macros

Science and Data Analysis

Libraries for scientific computing, data analysis and numerical processing.

NameDescriptionGitHub Activity
algebirdAbstract Algebra for Scala
axleAxle Domain Specific Language for Scientific Cloud Computing and Visualization
BigDLBuilding Large-Scale AI Applications for Distributed Big Data
breezeBreeze is a numerical processing library for Scala.
Clustering4EverC4E, a JVM friendly library written in Scala for both local and distributed (Spark) Clustering.
doddle-model🍰 doddle-model: machine learning in Scala.
figaroFigaro Programming Language and Core Libraries
libraA dimensional analysis library based on dependent types
LoMRFLoMRF is an open-source implementation of Markov Logic Networks
mgoPurely functional genetic algorithms for multi-objective optimisation
MLLibMachine Learning framework for Spark
nd4sND4S: N-Dimensional Arrays for Scala. Scientific Computing a la Numpy. Based on ND4J.
NDScalaN-dimensional arrays in Scala 3. Think NumPy ndarray, but type-safe over shapes, array/axis labels & numeric data types
numscanumsca is numpy for scala
onnx-scalaAn ONNX (Open Neural Network eXchange) API and backend for typeful, functional deep learning in Scala 3
openmoleWorkflow engine for exploration of simulation models using high throughput computing
OptimusOptimus is a mathematical programming library for Scala.
OscaRa Scala toolkit for solving Operations Research problems
ringsRings: efficient JVM library for polynomial rings
smileStatistical Machine Intelligence & Learning Engine
spark-notebookInteractive and Reactive Data Science using Scala and Spark.
spirePowerful new number types and numeric abstractions for Scala.
squantsThe Scala API for Quantities, Units of Measure and Dimensional Analysis
SynapsesA group of neural-network libraries for functional and mainstream languages
tensorflow_scalaTensorFlow API for the Scala Programming Language
zeppelinWeb-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more.
spark-nlpState of the Art Natural Language Processing

Big Data

NameDescriptionGitHub Activity
BIDMachCPU and GPU-accelerated Machine Learning Library
flinkApache Flink
gridscaleScala library for accessing various file, batch systems, job schedulers and grid middlewares.
kafkaMirror of Apache Kafka
alpakka-kafkaAlpakka Kafka connector - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka.
scaldingA Scala API for Cascading
schemerSchema registry for CSV, TSV, JSON, AVRO and Parquet schema. Supports schema inference and GraphQL API.
scioA Scala API for Apache Beam and Google Cloud Dataflow.
ScrunchA Scala wrapper for Apache Crunch which provides a framework for writing, testing, and running MapReduce pipelines.
sparkApache Spark - A unified analytics engine for large-scale data processing
sparkplugSpark package to "plug" holes in data using SQL based rules ⚡️ 🔌
spartaReal Time Analytics and Data Pipelines based on Spark Streaming
summingbirdStreaming MapReduce with Scalding and Storm
VegasThe missing MatPlotLib for Scala + Spark
gallia-coreA schema-aware Scala library for data transformation

Command Line Interfaces

Libraries for creation of command line interfaces

NameDescriptionGitHub Activity
clistCommand Line Interface Scala Toolkit
declineA composable command-line parser for Scala.
mainargsA small, convenient, dependency-free library for command-line argument parsing in Scala
scallopa simple Scala CLI parsing library
scoptcommand line options parsing for Scala

Image processing and image analysis

2D and 3D image processing and image analysis

NameDescriptionGitHub Activity
scala-phashImage comparison by hash codes
scalismoScalable Image Analysis and Shape Modelling
scrimageJava, Scala and Kotlin image processing library

Sound processing and music

NameDescriptionGitHub Activity
Chromaprint.scalaChromaprint/AcoustID audio fingerprinting for the JVM
ScalaColliderA Scala sound synthesis library based on SuperCollider.

Functional Reactive Programming

Event streams, signals, observables, etc.

NameDescriptionGitHub Activity
fs2Compositional, streaming I/O library for Scala
iterateeIteratees for Cats
monixAsynchronous, Reactive Programming for Scala and Scala.js.
reactorsA concurrent reactive programming framework.
reactor-scala-extensionsA scala extension for Project Reactor's Flux and Mono
REScalaREScala - reactive programming in OO applications
RxScalaRxScala – Reactive Extensions for Scala – a library for composing asynchronous and event-based programs using observable sequences
scala.rxAn experimental library for Functional Reactive Programming in Scala
zioZIO — A type-safe, composable library for async and concurrent programming in Scala
SynapseGridSynapseGrid is a framework for constructing dynamic low latency data flow systems.
vertx-lang-scalaVert.x for Scala
wire-signalsA small and effective event-handling library for Scala

Modularization and Dependency Injection

Modularization of applications, dependency injection, etc.

NameDescriptionGitHub Activity
airframeEssential Building Blocks for Scala
izumiProductivity-oriented collection of lightweight fancy stuff for Scala toolchain
macwireLightweight and Nonintrusive Scala Dependency Injection Library
scala-guiceScala extensions for Google Guice
scaldiLightweight Scala Dependency Injection Library
sclasnerScala classpath scanner
subcutScala Uniquely Bound Classes Under Traits
jamIncredibly simple DI Scala library.

Distributed Systems

Libraries and frameworks for writing distributed applications.

NameDescriptionGitHub Activity
akkaBuild highly concurrent, distributed, and resilient message-driven applications on the JVM
akka-tracingA distributed tracing extension for Akka. Provides integration with Play framework, Spray and Akka HTTP.
annettePlatform to build distributed, scalable, enterprise-wide business applications
curiodbDistributed NoSQL Database
finagleA fault tolerant, protocol-agnostic RPC system
glokkaLibrary to register and lookup actors by names in an Akka cluster
lagomReactive Microservices for the JVM
parapetA purely functional library to build distributed and event-driven systems
poppetMinimal, type-safe RPC Scala library.
reactorsA foundational framework for distributed programming.

Extensions

Scala extensions.

NameDescriptionGitHub Activity
AmmoniteScala Scripting
better-filesSimple, safe and intuitive Scala I/O
blindsightBlindsight is a Scala logging API with DSL based structured logging, fluent logging, semantic logging, flow logging, and context aware logging.
cassovaryCassovary is a simple big graph processing library for the JVM
catsLightweight, modular, and extensible library for functional programming.
chimneyScala library for boilerplate-free, type-safe data transformations
chronoscalaA JSR-310 port of nscala_time
Dsl.scalaA framework to create embedded Domain-Specific Languages in Scala
eachA macro library that converts native imperative syntax to scalaz's monadic expressions
effEff monad for cats - https://atnos-org.github.io/eff
enableIf.scalaA library that toggles Scala code at compile-time, like #if in C/C++
enumeratumA type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations.
Freasy-MonadEasy way to create Free Monad using Scala macros with first-class Intellij support.
freedslPractical effect composition library based on abstract wrapping type and the free monad
freestyleA cohesive & pragmatic framework of FP centric Scala libraries
hamstersA mini Scala utility library
lammaLamma schedule generator for Scala is a professional schedule generation library for periodic schedules like fixed income coupon payment, equity deravitive fixing date generation etc.
larrayLarge off-heap arrays and mmap files for Scala and Java
log4sHigh-performance SLF4J wrapper for Scala.
izumiProductivity-oriented collection of lightweight fancy stuff for Scala toolchain
MonocleOptics library for Scala
nscala-timeA new Scala wrapper for Joda Time based on scala-time
quicklensModify deeply nested case class fields
scala-recordsLabeled records for Scala based on structural refinement types and macros.
refinedRefinement types for Scala
scala-asyncAn asynchronous programming facility for Scala
scala-graphGraph 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.
scala-loggingConvenient and performant logging library for Scala wrapping SLF4J.
scalametaLibrary to read, analyze, transform and generate Scala programs
ScalacticSmall library of utilities related to quality that helps keeping code clear and correct.
scalazPrincipled Functional Programming in Scala
scribeThe fastest logging library in the world. Built from scratch in Scala and programmatically configurable.
shapelessGeneric programming for Scala
simulacrumFirst class syntax support for type classes in Scala
squidSquid – type-safe metaprogramming and compilation framework for Scala
tinylogtinylog is a lightweight logging framework for Java, Kotlin, Scala, and Android
utilWonderful reusable code from Twitter

Misc

Projects that don't fit into any specific category.

NameDescriptionGitHub Activity
AgoraLibrary of vote-counting algorithms for elections.
AmmoniteScala Scripting
aws4sNon-blocking AWS SDK for Scala exposing strongly-typed APIs built on top of http4s, fs2 and cats
bootzookaSimple project to quickly start developing a Scala-based microservice or web application, without the need to write login, user registration etc.
eclairA scala implementation of the Lightning Network.
fansiScala/Scala.js library for manipulating Fancy Ansi colored strings
figlet4sASCII-art banners in Scala
fs2-awsfs2 utilities to interact with AWS
google4sA lean, functional library for Google Cloud Services in Scala
google-api-scalaThis API is a wrapper for the google java libraries. Currently mapping Admin Directory, Drive, and Calendar.
mailgun4sMailgun API implementation in Scala
managerialA zero-dependency Scala library for managing resources monadically
media4sScala command-line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media.
miniboxing-pluginMiniboxing is a program transformation that improves the performance of Scala generics when used with primitive types. It can speed up generic collections by factors between 1.5x and 22x, while maintaining bytecode duplication to a minimum. You can easily add miniboxing to your sbt project:
ostinatoA chess library that runs on the server (Scala) and on the browser (ScalaJS).
play-swaggerSwagger spec generator for play framework
PPrintPretty-printing value, types and type-signatures in Scala
pureconfigA boilerplate-free library for loading configuration files
REPLesentA neat little tool to build presentations using the Scala REPL
scala-sshRemote shell access via SSH for your Scala applications
scala-stmA library-based Software Transactional Memory (STM) for Scala, coupled with transactional sets and maps
ScavengerAn experimental automated theorem prover.
service-chassisA scala chassis to get your applications and services bootstrapped quickly
spliffEfficient diffing in Scala

Android

Scala libraries and wrappers for Android development.

NameDescriptionGitHub Activity
sbt-androidAn easy-to-use sbt plugin for working with all Android projects
scaloidScaloid makes your Android code easy to understand and maintain.

HTTP

Scala libraries and wrappers for HTTP clients.

NameDescriptionGitHub Activity
akka-httpThe Streaming-first HTTP server/module of Akka
rebootScala wrapper for the Java AsyncHttpClient.
finchScala combinator library for building Finagle HTTP services
fintrospectImplement fast, type-safe HTTP webservices for Finagle
http4sA minimal, idiomatic Scala interface for HTTP
jefeManages installation, updating, downloading, launching, error reporting, and more for your application.
lolhttpAn HTTP Server and Client library for Scala.
requests-scalaA Scala port of the popular Python Requests HTTP client: flexible, intuitive, and straightforward to use.
RosHTTPUnified Scala.js + Scala HTTP client API
scalaj-httpSimple scala wrapper for HttpURLConnection. OAuth included.
scalaxbscalaxb is an XML data binding tool for Scala.
sttpThe Scala HTTP client you always wanted!
tapirDeclarative, type-safe web endpoints library
endpoints4sDescribe HTTP endpoints in Scala and derive clients, servers, and documentation
frontierFast, efficient, pure-functional, effect-free websocket, http and udp server, http client and telegram bot

Semantic Web

Scala libraries for interactions with the Web of Data, and other RDF tools.

NameDescriptionGitHub Activity
banana-rdfBanana RDF
scowlA Scala DSL for programming with the OWL API.

Metrics and Monitoring

Scala libraries for gathering metrics and monitoring applications.

NameDescriptionGitHub Activity
metrics-scalaThe scala API for Dropwizard's Metrics.

Parsing

Scala libraries for creating parsers.

NameDescriptionGitHub Activity
attofriendly little parsers
fastparseWriting Fast Parsers Fast in Scala
parboiled2A macro-based PEG parser generator for Scala 2.10+
scala-parser-combinatorssimple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module
cats-parseA parsing library for the cats ecosystem
scallionLL(1) parser combinators in Scala

Sbt plugins

Sbt plugins to make your life easier.

NameDescriptionGitHub Activity
better-monadic-forDesugaring scala for without implicit withFilters
coursierPure Scala Artifact Fetching
mdocTypechecked markdown documentation for Scala
sbt-api-mappingsAn Sbt plugin that fills apiMappings for common Scala libraries.
sbt-apidocA port of apidocjs https://apidocjs.com to sbt, to document REST Api
sbt-assemblyDeploy über-JARs. Restart processes. (port of codahale/assembly-sbt)
sbt-buildinfoI know this because build.sbt knows this.
sbt-ci-releasesbt plugin to automate Sonatype releases from GitHub Actions
sbt-dependency-checkSBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). 🌈
sbt-dockerCreate Docker images directly from sbt
sbt-doctestDoctest for scala
sbt-ghpagesgit, site and ghpages support for sbt projects.
sbt-grollsbt plugin to roll the Git history
sbt-headersbt-header is an sbt plugin for creating file headers, e.g. copyright headers
sbt-hepekSbt plugin for rendering Scala objects to files. And more!
sbt-ide-settingsSBT plugin for tweaking various IDE settings
sbt-jmh"Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness)
sbt-micrositesAn sbt plugin to create awesome microsites for your project
mimaA tool for catching binary incompatibility in Scala
sbt-native-packagersbt Native Packager
sbt-packA sbt plugin for creating distributable Scala packages.
sbt-pgpPGP plugin for sbt
sbt-releaseA release plugin for sbt
sbt-revolverAn SBT plugin for dangerously fast development turnaround in Scala
sbt-scala-js-mapA Sbt plugin that configures source mapping for Scala.js projects hosted on Github
sbt-scalafmtsbt plugin for Scalafmt
sbt-scoveragesbt plugin for scoverage
sbt-siteSite generation for sbt
sbt-sonatypeA sbt plugin for publishing Scala/Java projects to the Maven central.
sbt-unidocsbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects.
sbt-updatessbt plugin that can check Maven and Ivy repositories for dependency updates
sbt-eclipsePlugin for sbt to create Eclipse project definitions
scala-clippyGood advice for Scala compiler errors
splainbetter implicit errors for scala
tutdoc/tutorial generator for scala
xsbt-web-pluginServlet support for sbt
sbt-deploy-sshSBT deploy plugin
sbt-gitA git plugin for SBT
sbt-gitUse git-describe as a version and run git commands inside SBT shell

XML / HTML

XML and HTML generation and processing

NameDescriptionGitHub Activity
scala-scraperA Scala library for scraping content from HTML pages
xs4sXML Streaming for Scala including FS2/cats support

Markdown

NameDescriptionGitHub Activity
LaikaText Markup Transformer for sbt and Scala applications, transforming Markdown and reStructuredText to HTML, EPUB and PDF

JavaScript

JavaScript generation and interop libraries.

NameDescriptionGitHub Activity
scalafiddle-editorWeb user interface for ScalaFiddle
scala-jsScala.js, the Scala to JavaScript compiler

Scheduling

NameDescriptionGitHub Activity
akka-quartz-schedulerQuartz Extension and utilities for cron-style scheduling in Akka

Templating

Web templating engines.

NameDescriptionGitHub Activity
beardA lightweight, logicless templating engine, written in Scala and inspired by Mustache
scalatagsScalaTags is a small XML/HTML construction library for Scala.
scalateScalate is a Scala based template engine which supports HAML, Mustache and JSP, Erb and Velocity style syntaxes.
twirlTwirl is Play's default template engine
hepekTypesafe HTML templates in pure Scala. Static site generator included! Play and ScalaJS support!

Tools

NameDescriptionGitHub Activity
scala-trace-debugMacro based print debugging. Locates log statements in your IDE.
bloopBloop is a build server and CLI tool to compile, test and run Scala fast from any editor or build tool.
codacy-scalametaCodacy tool for Scalameta
coursierPure Scala Artifact Fetching
dregexDregex is a JVM library that implements a regular expression engine using deterministic finite automata (DFA). It supports some Perl-style features and yet retains linear matching time, and also offers set operations.
fast-string-interpolatorScala macro that generates ultra-fast string interpolators.
fastringExtremely fast string formatting
gitbucketA Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility
giter8a command line tool to apply templates defined on GitHub
metalsScala language server with rich IDE features 🚀
millYour shiny new Java/Scala build tool!
posMacro based print debugging. Locates debug statements in your IDE. Supports logging.
sbtsbt, the interactive build tool
scalafixRefactoring and linting tool for Scala
ScalafmtCode formatter for Scala
scalariformScala source code formatter
scalastylescalastyle
ScalatexProgrammable, Typesafe Document Generation
scapegoatScala compiler plugin for static code analysis
wartremoverFlexible Scala code linting tool
stoneURL (de)construct. Withers.
scalajs-routerScalaJS frontend router
scala2plantumlScala2PlantUML generates PlantUML diagrams from Scala code.

Geospatial

Libraries to aid with geospatial calculations and artifacts.

NameDescriptionGitHub Activity
geotrellisGeoTrellis is a geographic data processing engine for high performance applications.
osm4scalaScala and Spark library focused on reading OpenStreetMap Pbf files.
rtree2dRTree2D is a 2D immutable R-tree for ultra-fast nearest and intersection queries in plane and spherical coordinates
sfcurveLocationTech SFCurve is a Scala library for the creation, transformation, and querying of space-filling curves
stac4sa scala library with primitives to build applications using the SpatioTemporal Asset Catalogs specification
franklinA STAC/OGC API Features Web Service

Devops

DevOps related tools and libraries.

NameDescriptionGitHub Activity
skuberA Scala Kubernetes client library

Learning Scala

Nice books, blogs and other resources to learn Scala

Books

Exercises

Tutorials and courses

Commercial courses

  • Foundations of Functional Programming in Scala - a professional video course with exercises covering covers functional principles, custom IO (effects) and functional design.
  • Scala Algorithms - a collection of nearly 100 algorithms in pure-functional Scala with test cases, explanations and a web-based IDE. Built with http4s & Scala.js.

Community Members' Blogs

Company Blogs

Podcasts

  • The Scala Logs - Interviewing developers, open source contributors, subject matter experts, and the like to talk about FP, Scala, open source, and their interests.
  • Scala Love - Podcast about the Scala Programming Language and its community
  • CoRecursive Interviews - In-depth Interviews with software developers, often on the subject of scala libraries and functional programming.

Misc.

Contribute to this list: https://github.com/lauris/awesome-scala