awesome-scala
A community driven list of useful Scala libraries, frameworks and software.
https://github.com/lauris/awesome-scala
Last synced: 7 days ago
JSON representation
-
Table of Contents
-
Android
- **scaloid** - activity/y/pocorall/scaloid)
-
Science and Data Analysis
- MLLib
- OscaR
- **smile** - activity/y/haifengl/smile)
- **zeppelin** - based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. |  
- Synapses - network libraries for functional and mainstream languages |  
- **spark-notebook** - notebook/spark-notebook) 
- **algebird** - activity/y/twitter/algebird)
- **spark-nlp** - nlp) 
- **figaro** - river-analytics/figaro) 
- **squants** - activity/y/typelevel/squants)
- axle - activity/y/axlelang/axle)
- **breeze** - activity/y/scalanlp/breeze)
- Clustering4Ever - activity/y/Clustering4Ever/Clustering4Ever)
- doddle-model - model: machine learning in Scala. |  
- libra - ithaca/libra) 
- LoMRF - source implementation of Markov Logic Networks |  
- mgo - objective optimisation |  
- NDScala - dimensional arrays in Scala 3. Think NumPy ndarray, but type-safe over shapes, array/axis labels & numeric data types |  
- numsca - activity/y/botkop/numsca)
- onnx-scala - scala) 
- openmole - activity/y/openmole/openmole)
- Optimus - activity/y/vagmcs/Optimus)
- rings - activity/y/PoslavskySV/rings)
- **spire** - activity/y/typelevel/spire)
- **tensorflow_scala** - activity/y/eaplatanios/tensorflow_scala)
- VecMatLib - activity/y/ScalaMath/VecMatLib)
-
Big Data
- Scrunch
- **spark** - A unified analytics engine for large-scale data processing |  
- **scalding** - activity/y/twitter/scalding)
- **flink** - activity/y/apache/flink)
- **kafka** - activity/y/apache/kafka)
- **nussknacker** - code tool for automating actions on real time data | Stream processing for the users. |  
- schemer - activity/y/indix/schemer)
- **scio** - activity/y/spotify/scio)
- **BIDMach** - accelerated Machine Learning Library |  
- **alpakka-kafka** - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka. |  
- gridscale - activity/y/openmole/gridscale)
- gallia-core - aware Scala library for data transformation |  
-
Extensions
- Scalactic
- **scalaz** - activity/y/scalaz/scalaz)
- **cats** - activity/y/typelevel/cats)
- **util** - activity/y/twitter/util)
- **Ammonite** - lihaoyi/Ammonite) 
- log4s - performance SLF4J wrapper for Scala. |  
- Dsl.scala - Specific Languages in Scala |  
- **eff** - https://atnos-org.github.io/eff |  
- **tinylog** - org/tinylog) 
- **Monocle** - dev/Monocle) 
- **scalameta** - activity/y/scalameta/scalameta)
- **refined** - activity/y/fthomas/refined)
- **quicklens** - activity/y/softwaremill/quicklens)
- each - activity/y/ThoughtWorksInc/each)
- **shapeless** - activity/y/milessabin/shapeless)
- **chimney** - free, type-safe data transformations |  
- **scribe** - activity/y/outr/scribe)
- **better-files** - files) 
- **enumeratum** - safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations. |  
- **scala-async** - async) 
- chronoscala - 310 port of nscala_time |  
- **scala-logging** - labs/scala-logging) 
- blindsight - activity/y/tersesystems/blindsight)
- **scala-graph** - memory graph library aiming at editing and traversing graphs, finding cycles etc. in a user-friendly way. |  
- **nscala-time** - time |  
- **simulacrum** - activity/y/typelevel/simulacrum)
- enableIf.scala - time, like #if in C/C++ |  
- squid - safe metaprogramming and compilation framework for Scala |  
-
Tools
- Scalafmt
- **gitbucket** - activity/y/gitbucket/gitbucket)
- **metals** - activity/y/scalameta/metals)
- **scalafix** - activity/y/scalacenter/scalafix)
- **sbt** - activity/y/sbt/sbt)
- **bloop** - activity/y/scalacenter/bloop)
- **wartremover** - activity/y/wartremover/wartremover)
- **mill** - 3x faster than Gradle and 5-10x faster than Maven for common workflows, Mill aims to make your project’s build process performant, maintainable, and flexible |  
- **scapegoat** - scala/scapegoat) 
- **giter8** - activity/y/foundweekends/giter8)
- fast-string-interpolator - fast string interpolators. |  
- dregex - style features and yet retains linear matching time, and also offers set operations. |  
- **scalariform** - ide/scalariform) 
- fastring - activity/y/Atry/fastring)
- scala2plantuml - activity/y/BotTech/scala2plantuml)
-
Misc
- Agora - counting algorithms for elections. |
- **eclair** - activity/y/ACINQ/eclair)
- PPrint - printing value, types and type-signatures in Scala |  
- fansi - lihaoyi/fansi) 
- **bootzooka** - based microservice or web application, without the need to write login, user registration etc. |  
- **pureconfig** - free library for loading configuration files |  
- spliff - activity/y/sirthias/spliff)
- mailgun4s - activity/y/outr/mailgun4s)
- media4s - line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media. |  
- fs2-aws - io/fs2-aws) 
- play-swagger - swagger) 
- managerial - dependency Scala library for managing resources monadically |  
- service-chassis - chassis) 
- scountries - activity/y/lambdaworks/scountries)
- scurl-detector - detector) 
- aptus-core - core) 
-
Web Frameworks
- xitrum - framework/xitrum) 
- **scalajs-react** - react) 
- **playframework** - activity/y/playframework/playframework)
- **finatra** - activity/y/twitter/finatra)
- youi - activity/y/outr/youi)
- chaos - activity/y/mesosphere/chaos)
- pagelets - activity/y/splink/pagelets)
- **colossus** - activity/y/tumblr/colossus)
- analogweb-scala - scala) 
- **cask** - framework. Cask makes it easy to set up a website, backend server, or REST API using Scala |  
- **framework** - activity/y/lift/framework)
- peregrine - activity/y/dvarelap/peregrine)
- reactive - activity/y/nafg/reactive)
- **scalatra** - performance, async web framework, inspired by Sinatra |  
- **skinny-framework** - A full-stack web app framework for rapid development in Scala |  
- **unfiltered** - activity/y/unfiltered/unfiltered)
- sharaf - activity/y/sake92/sharaf)
-
Distributed Systems
- **akka** - driven applications on the JVM |  
- **finagle** - agnostic RPC system |  
- annette - wide business applications |  
- poppet - safe RPC Scala library. |  
- automorph - org/automorph) 
-
Parsing
- **fastparse** - lihaoyi/fastparse) 
- cats-parse - parse) 
- atto - activity/y/tpolecat/atto)
- **scala-parser-combinators** - based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module |  
- **parboiled2** - based PEG parser generator for Scala 2.10+ |  
-
Sbt plugins
- **sbt-assembly** - JARs. Restart processes. (port of codahale/assembly-sbt) |  
- sbt-scala-js-map - scala-js-map) 
- **sbt-release** - release) 
- sbt-header - header is an sbt plugin for creating file headers, e.g. copyright headers |  
- **sbt-eclipse** - eclipse) 
- sbt-pack - pack) 
- **sbt-buildinfo** - buildinfo) 
- **sbt-scoverage** - scoverage) 
- sbt-site - site) 
- sbt-ghpages - ghpages) 
- sbt-unidoc - unidoc) 
- **sbt-native-packager** - native-packager) 
- sbt-git - git) 
- **sbt-updates** - updates) 
- **better-monadic-for** - py/better-monadic-for) 
- **coursier** - activity/y/coursier/coursier)
- sbt-dependency-check - dependency-check) 
- mdoc - activity/y/scalameta/mdoc)
- **sbt-jmh** - sbt plugin for JMH (Java Microbenchmark Harness) |  
- splain - activity/y/tek/splain)
- sbt-hepek - hepek) 
- sbt-sonatype - sonatype) 
- sbt-pgp - pgp) 
- sbt-ci-release - ci-release) 
- sbt-scalafmt - scalafmt) 
- sbt-microsites - microsites) 
- mima - labs/mima) 
- **sbt-docker** - docker) 
- sbt-api-mappings - api-mappings) 
- sbt-ide-settings - ide-settings) 
- sbt-doctest - doctest) 
- xsbt-web-plugin - web-plugin) 
-
Database
- **sangria** - graphql/sangria) 
- **ReactiveMongo** - blocking, Reactive MongoDB Driver for Scala |  
- anorm - activity/y/playframework/anorm)
- clickhouse-scala-client - scala-client) 
- couchdb-scala - scala) 
- **elastic4s** - Reactive, Non Blocking, Type Safe, HTTP Client |  
- finagle-postgres - postgres) 
- laserdisc - free Fs2 native pure FP Redis client |  
- longevity - activity/y/longevityframework/longevity)
- lucene4s - weight convenience wrapper around Lucene to simplify complex tasks and add Scala sugar. |  
- mapperdao - activity/y/kostaskougios/mapperdao)
- morpheus - safe Scala driver for SQL databases |  
- neotypes - safe, asynchronous driver for neo4j |  
- **phantom** - safe, reactive Scala driver for Cassandra/Datastax Enterprise |  
- pulsar4s - activity/y/CleverCloud/pulsar4s)
- **zio-quill** - time Language Integrated Queries for Scala |  
- **rediscala** - blocking, Reactive Redis driver for Scala (with Sentinel support) |  
- relate - activity/y/lucidsoftware/relate)
- salat - activity/y/salat/salat)
- scala-activerecord - like ORM library for Scala |  
- scala-forklift - safe data migration tool for Slick, Git and beyond. |  
- **scala-redis** - redis) 
- scala-sql - sql) 
- scalarelational - Safe framework for defining, modifying, and querying SQL databases |  
- **scalikejdbc** - based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs. |  
- scanamo - activity/y/scanamo/scanamo)
- scredis - blocking, ultra-fast Scala Redis client built on top of Akka IO, used in production at Livestream |  
- shade - activity/y/monix/shade)
- **slick** - activity/y/slick/slick)
- **slick-pg** - pg) 
- **squeryl** - activity/y/squeryl/squeryl)
- scruid - bank/scruid) 
- akka-persistence-gcp-datastore - persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode. |  
- **casbah** - of-life (EOL). |  
- couchbase-jvm-clients - core… |  
- etcd4s - activity/y/mingchuno/etcd4s)
- mysql-binlog-stream - io/mysql-binlog-stream) 
- reactivecouchbase-rs-core - streams |  
- molecule - activity/y/scalamolecule/molecule)
- zio-redis - based redis client |  
- kvs - deps/kvs) 
- **doobie** - activity/y/typelevel/doobie)
- squery - activity/y/sake92/squery)
- **skunk** - activity/y/typelevel/skunk)
-
Testing
- **bencher** - Continuous Benchmarking |  
- **gatling** - activity/y/gatling/gatling)
- **scalatest** - activity/y/scalatest/scalatest)
- minitest - activity/y/monix/minitest)
- scalaprops - activity/y/scalaprops/scalaprops)
- **scalacheck** - based testing for Scala |  
- **specs2** - activity/y/etorreborre/specs2)
- munit - activity/y/scalameta/munit)
- cornichon - activity/y/agourlay/cornichon)
- mockito-scala - scala) 
- **scalameter** - activity/y/scalameter/scalameter)
- scalive - framework/scalive) 
- stryker4s - mutator/stryker4s) 
- weaver-test - test) 
- **testcontainers-scala** - scala) 
- utest - lihaoyi/utest) 
- **ScalaMock** - activity/y/paulbutcher/ScalaMock)
-
Templating
- **scalate** - activity/y/scalate/scalate)
- **scalatags** - lihaoyi/scalatags) 
- **twirl** - activity/y/playframework/twirl)
- hepek - activity/y/sake92/hepek)
-
Reactive Web Frameworks
- **Binding.scala** - binding for Scala |  
- **korolev** - activity/y/fomkin/korolev)
- udash-core - core) 
- vertx-lang-scala - x3/vertx-lang-scala) 
-
JavaScript
- **scala-js** - js/scala-js) 
-
Artificial Intelligence
- cilib - activity/y/ciren/cilib)
-
Messaging
- op-rabbit - rabbit) 
-
Functional Reactive Programming
- **fs2** - activity/y/typelevel/fs2)
- **monix** - activity/y/monix/monix)
- **zio** - safe, composable library for async and concurrent programming in Scala |  
- iteratee - activity/y/travisbrown/iteratee)
- REScala - distributed and reactive programming embedded in OO and FP programs. |  
-
XML / HTML
- **scala-scraper** - scraper) 
- xs4s - activity/y/ScalaWilliam/xs4s)
- phobos - binding library for Scala |  
-
Command Line Interfaces
- **scopt** - activity/y/scopt/scopt)
- **decline** - line parser for Scala. |  
- **scallop** - activity/y/scallop/scallop)
- mainargs - free library for command-line argument parsing in Scala |  
-
HTTP
- **finch** - activity/y/finagle/finch)
- endpoints4s - activity/y/endpoints4s/endpoints4s)
- reboot - activity/y/dispatch/reboot)
- **http4s** - activity/y/http4s/http4s)
- **sttp** - activity/y/softwaremill/sttp)
- **requests-scala** - lihaoyi/requests-scala) 
- **tapir** - documenting APIs |  
- **akka-http** - first HTTP server/module of Akka |  
- scalaxb - activity/y/eed3si9n/scalaxb)
- lolhttp - activity/y/criteo/lolhttp)
- frontier - deps/frontier) 
-
Modularization and Dependency Injection
- **izumi** - oriented collection of lightweight fancy stuff for Scala toolchain |  
- **macwire** - cost, compile-time, type-safe dependency injection library. |  
- **airframe** - activity/y/wvlet/airframe)
- scaldi - activity/y/scaldi/scaldi)
- jam - activity/y/yakivy/jam)
-
JSON
- **spray-json** - json) 
- **circe** - activity/y/circe/circe)
- scala-jsonapi - jsonapi/scala-jsonapi) 
- **jsoniter-scala** - time generation of safe and ultra-fast JSON codecs + circe booster |  
- **argonaut** - io/argonaut) 
- diffson - activity/y/gnieh/diffson)
- **jackson-module-scala** - on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes |  
- jawn - sawn (JSON) |  
- **json4s** - activity/y/json4s/json4s)
- json - Json, a Fast Json Parser Written in Scala |  
- ninny-json - json) 
- play-json - json) 
- pushka - activity/y/fomkin/pushka)
- sbt-json - json) 
- ScalaJack - activity/y/gzoller/ScalaJack)
- zio-json - json) 
- tupson - activity/y/sake92/tupson)
-
Data Binding and Validation
- octopus - free validation |  
- dupin - activity/y/yakivy/dupin)
- veto - activity/y/splink/veto)
- fields - company/fields) 
-
Authentication
- **play2-auth** - auth) 
- akka-http-session - side akka-http sessions, with optional JWT support |  
- aws-request-signer - request-signer) 
- OAuth2-mock-play - stups/OAuth2-mock-play) 
- play-googleauth - googleauth) 
- play-pac4j - pac4j) 
- **scala-oauth2-provider** - side implementation written in Scala |  
- **securesocial** - activity/y/jaliss/securesocial)
-
Geospatial
- **geotrellis** - activity/y/locationtech/geotrellis)
- stac4s - utils/stac4s) 
- osm4scala - activity/y/simplexspatial/osm4scala)
- rtree2d - tree for ultra-fast nearest and intersection queries in plane and spherical coordinates |  
- franklin - activity/y/azavea/franklin)
-
Serialization
- **avro4s** - activity/y/sksamuel/avro4s)
- **ScalaPB** - activity/y/scalapb/ScalaPB)
- borer - activity/y/sirthias/borer)
- avro-codegen - codegen) 
- **chill** - activity/y/twitter/chill)
- msgpack-scala - scala) 
- **scodec** - activity/y/scodec/scodec)
- **scrooge** - activity/y/twitter/scrooge)
- **upickle** - free JSON & Binary (MessagePack) serialization library for Scala |  
- proto - deps/proto) 
-
Graphical User Interfaces
- **scalafx** - based user interfaces in Scala |  
-
Archive and Compression
- SevenZ4S - activity/y/gonearewe/SevenZ4S)
-
i18n
- scala-xgettext - framework/scala-xgettext) 
- scaposer - framework/scaposer) 
-
Cryptography
- scrypto - output-hk/scrypto) 
- tsec - safe general-cryptography library - https://jmcardon.github.io/tsec/ |  
- jose - activity/y/blackdoor/jose)
-
YAML
- moultingyaml - activity/y/jcazevedo/moultingyaml)
-
CSV
- fm-flatfile - flatfile) 
- kantan.csv - activity/y/nrinaudo/kantan.csv)
- **scala-csv** - csv) 
- spata - based CSV processor for Scala |  
-
Image processing and image analysis
- **scrimage** - Java, Kotlin, Scala image processing library |  
- scalismo - gravis/scalismo) 
-
Metrics and Monitoring
- metrics-scala - scala) 
-
Semantic Web
- scowl - activity/y/phenoscape/scowl)
-
Markdown
- Laika - book Generator and Customizable Text Markup Transformer for sbt, Scala and Scala.js |  
-
Scheduling
- **akka-quartz-scheduler** - style scheduling in Akka |  
-
Devops
- skuber - activity/y/hagay3/skuber)
-
-
Books
-
Devops
- Essential Scala - Essential Scala is aimed at experienced developers who are encountering Scala for the first time.
- Functional and Reactive Domain Modeling
- Functional Programming for Mortals
- Functional Programming in Scala
- Functional Programming, Simplified (Scala edition)
- Get Programming with Scala - Tutorial-driven introduction to Scala
- Practical FP in Scala: A hands-on approach
- Programming in Scala
- Pure functional HTTP APIs in Scala
- Reactive Programming with Scala and Akka - Use the concepts of reactive programming to build distributed systems running on multiple nodes
- Scala Cookbook
- Scala for the Impatient - Covers most Scala features with short and easy to understand explainations.
- Scala With Cats - Learn system architecture and design using the techniques of modern functional programming with [Cats](https://typelevel.org/cats/)
- The Type Astronaut's Guide to Shapeless
- Zionomicon - Master the dark art of creating scalable, type-safe, concurrent apps with ZIO
- Scala Cookbook
- Zionomicon - Master the dark art of creating scalable, type-safe, concurrent apps with ZIO
-
-
Exercises
-
Devops
- S-99 - Ninety-Nine Scala Problems
- S-99 - Ninety-Nine Scala Problems
- Scala Exercises - Brings the popular Scala Koans to the web. Offering hundreds of solvable exercises organized into 42 categories covering the basics of the Scala language.
- Exercism - Scala Exercises - Community-driven Scala exercises.
- Scala Exercises - Brings the popular Scala Koans to the web. Offering hundreds of solvable exercises organized into 42 categories covering the basics of the Scala language.
- Learn-by-doing functional programming course on Scala - Covers type classes, functors, applicatives, monads, monad transformers, free monad
-
-
Tutorials and courses
-
Devops
- A Tour of Scala - Bite-sized introductions to some of the core language concepts.
- Functional Programming in Scala - Coursera Specialization (5 courses) created by Martin Odersky et al. at the EPFL (Ecole polytechnique fédérale de Lausanne).
- Dr. Mark Lewis
- Introduction to programming with dependent types in Scala - Video Course by Dmytro Mitin
- Scala Collections Cookbook - Scala collections introduction. written in Chinese.
- Free Scala Courses - A curated list of free Scala courses.
- Demos and Examples in Scala (Chinese) ★ 923 ⧗ 2 - repo of sample Scala library usage, written in Chinese
- Dr. Mark Lewis
- Clean Architecture Example - A step-by-step guide to develop an application using Clean Architecture in Scala.
- Free Scala Courses - A curated list of free Scala courses.
-
-
Commercial courses
-
Devops
- 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.
-
-
Company Blogs
-
Devops
- Functional Works / Learn - Quality resources maintained by functional works
- Scala Times - Weekly newsletter about scala
- 47 Degrees - Functional Programming news, updates, and more.
- 47 Degrees - Functional Programming news, updates, and more.
- 47 Degrees - Functional Programming news, updates, and more.
-
-
Podcasts
-
Devops
- 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.
- Scala Love - Podcast about the Scala Programming Language and its community
- Scala for Fun & Profit - Interviewing Scala users and companies.
- 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 for Fun & Profit - Interviewing Scala users and companies.
-
-
Communities
-
Devops
- Scala Ukraine - Telegram chat of Ukrainian Scala Community
-
-
Misc.
-
Devops
- Programming Community Curated Resources for Learning Scala
- Scala @LibHunt - A community driven list of useful Scala libraries, frameworks and software
- Scala Days Conferences - A youtube channel that provides full fledged videos, recorded at Scala Days Conferences
- Scalera Blog - Blog about Scala language and its environment (howto's, good practices, tips,...). Weekly posts written in both spanish and english
- CA Art - A small project aimed at learning Scala on intermediate level by experimenting with Cellular Automata
- Scala @LibHunt - A community driven list of useful Scala libraries, frameworks and software
- List of Scala Online Courses - A list of free and paid Scala online courses by Classpert, An online course search and comparison website
- Scala Days Conferences - A youtube channel that provides full fledged videos, recorded at Scala Days Conferences
-
Programming Languages
Categories
Sub Categories
Devops
57
Database
44
Sbt plugins
32
Extensions
28
Science and Data Analysis
26
JSON
17
Testing
17
Web Frameworks
17
Misc
16
Tools
15
Big Data
12
HTTP
11
Serialization
10
Authentication
8
Modularization and Dependency Injection
5
Distributed Systems
5
Parsing
5
Functional Reactive Programming
5
Geospatial
5
Reactive Web Frameworks
4
Command Line Interfaces
4
Data Binding and Validation
4
CSV
4
Templating
4
XML / HTML
3
Cryptography
3
Image processing and image analysis
2
i18n
2
JavaScript
1
Messaging
1
Graphical User Interfaces
1
Metrics and Monitoring
1
YAML
1
Markdown
1
Artificial Intelligence
1
Android
1
Archive and Compression
1
Scheduling
1
Semantic Web
1
Keywords
scala
189
functional-programming
22
json
21
sbt-plugin
21
java
18
sbt
18
http
13
scalajs
12
cats
12
reactive
11
spark
10
akka
10
database
9
serialization
9
machine-learning
8
jvm
8
typelevel
8
reactive-streams
8
scalaz
8
streaming
7
zio
7
scala-native
7
web
7
jdbc
7
framework
7
scala-js
7
scala3
7
fp
6
playframework
6
sql
6
http-client
6
scala-library
6
slf4j
6
macros
6
mysql
6
deep-learning
5
akka-http
5
http-server
5
dsl
5
fs2
5
big-data
5
finagle
5
testing
5
kotlin
5
rpc
5
monix
4
async
4
akka-streams
4
android
4
postgres
4