awesome-scala
A community driven list of useful Scala libraries, frameworks and software.
https://github.com/lauris/awesome-scala
Last synced: 1 day ago
JSON representation
-
Table of Contents
-
Science and Data Analysis
- MLLib
- OscaR
- **algebird** - activity/y/twitter/algebird)
- axle - activity/y/axlelang/axle)
- **breeze** - activity/y/scalanlp/breeze)
- Clustering4Ever - activity/y/Clustering4Ever/Clustering4Ever)
- doddle-model - model: machine learning in Scala. |  
- **figaro** - river-analytics/figaro) 
- 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)
- **smile** - activity/y/haifengl/smile)
- **spark-notebook** - notebook/spark-notebook) 
- **spire** - activity/y/typelevel/spire)
- **squants** - activity/y/typelevel/squants)
- Synapses - network libraries for functional and mainstream languages |  
- **tensorflow_scala** - activity/y/eaplatanios/tensorflow_scala)
- **zeppelin** - based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. |  
- **spark-nlp** - nlp) 
- VecMatLib - activity/y/ScalaMath/VecMatLib)
- **ipex-llm** - analytics/ipex-llm) 
-
Big Data
- Scrunch
- **BIDMach** - accelerated Machine Learning Library |  
- **flink** - activity/y/apache/flink)
- gridscale - activity/y/openmole/gridscale)
- **kafka** - activity/y/apache/kafka)
- **alpakka-kafka** - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka. |  
- **scalding** - activity/y/twitter/scalding)
- schemer - activity/y/indix/schemer)
- **scio** - activity/y/spotify/scio)
- **spark** - A unified analytics engine for large-scale data processing |  
- gallia-core - aware Scala library for data transformation |  
- **nussknacker** - code tool for automating actions on real time data | Stream processing for the users. |  
-
Extensions
- Scalactic
- **Ammonite** - lihaoyi/Ammonite) 
- **better-files** - files) 
- blindsight - activity/y/tersesystems/blindsight)
- **cats** - activity/y/typelevel/cats)
- **chimney** - free, type-safe data transformations |  
- chronoscala - 310 port of nscala_time |  
- Dsl.scala - Specific Languages in Scala |  
- each - activity/y/ThoughtWorksInc/each)
- **eff** - https://atnos-org.github.io/eff |  
- enableIf.scala - time, like #if in C/C++ |  
- **enumeratum** - safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations. |  
- log4s - performance SLF4J wrapper for Scala. |  
- **Monocle** - dev/Monocle) 
- **nscala-time** - time |  
- **quicklens** - activity/y/softwaremill/quicklens)
- **refined** - activity/y/fthomas/refined)
- **scala-async** - async) 
- **scala-graph** - memory graph library aiming at editing and traversing graphs, finding cycles etc. in a user-friendly way. |  
- **scala-logging** - labs/scala-logging) 
- **scalameta** - activity/y/scalameta/scalameta)
- **scalaz** - activity/y/scalaz/scalaz)
- **scribe** - activity/y/outr/scribe)
- **shapeless** - activity/y/milessabin/shapeless)
- **simulacrum** - activity/y/typelevel/simulacrum)
- squid - safe metaprogramming and compilation framework for Scala |  
- **tinylog** - org/tinylog) 
- **util** - activity/y/twitter/util)
-
Android
- **scaloid** - activity/y/pocorall/scaloid)
-
Tools
- Scalafmt
- **bloop** - activity/y/scalacenter/bloop)
- dregex - style features and yet retains linear matching time, and also offers set operations. |  
- fast-string-interpolator - fast string interpolators. |  
- fastring - activity/y/Atry/fastring)
- **gitbucket** - activity/y/gitbucket/gitbucket)
- **giter8** - activity/y/foundweekends/giter8)
- **metals** - activity/y/scalameta/metals)
- **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 |  
- **sbt** - activity/y/sbt/sbt)
- **scalafix** - activity/y/scalacenter/scalafix)
- **scalariform** - ide/scalariform) 
- **scapegoat** - scala/scapegoat) 
- **wartremover** - activity/y/wartremover/wartremover)
- scala2plantuml - activity/y/BotTech/scala2plantuml)
-
Archive and Compression
- SevenZ4S - activity/y/gonearewe/SevenZ4S)
-
Artificial Intelligence
- cilib - activity/y/ciren/cilib)
-
Database
- akka-persistence-gcp-datastore - persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode. |  
- anorm - activity/y/playframework/anorm)
- **casbah** - of-life (EOL). |  
- clickhouse-scala-client - scala-client) 
- couchdb-scala - scala) 
- etcd4s - activity/y/mingchuno/etcd4s)
- finagle-postgres - postgres) 
- laserdisc - free Fs2 native pure FP Redis client |  
- mysql-binlog-stream - io/mysql-binlog-stream) 
- 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 |  
- reactivecouchbase-rs-core - streams |  
- couchbase-jvm-clients - core… |  
- **ReactiveMongo** - blocking, Reactive MongoDB Driver for Scala |  
- **rediscala** - blocking, Reactive Redis driver for Scala (with Sentinel support) |  
- relate - activity/y/lucidsoftware/relate)
- salat - activity/y/salat/salat)
- **sangria** - graphql/sangria) 
- 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 |  
- scruid - bank/scruid) 
- shade - activity/y/monix/shade)
- molecule - activity/y/scalamolecule/molecule)
- **slick** - activity/y/slick/slick)
- **slick-pg** - pg) 
- **squeryl** - activity/y/squeryl/squeryl)
- zio-redis - based redis client |  
- kvs - deps/kvs) 
- **doobie** - activity/y/typelevel/doobie)
- **elastic4s** - Reactive, Non Blocking, Type Safe, HTTP Client |  
- squery - activity/y/sake92/squery)
- **skunk** - activity/y/typelevel/skunk)
-
Messaging
- op-rabbit - rabbit) 
-
Graphical User Interfaces
- **scalafx** - based user interfaces in Scala |  
-
Web Frameworks
- analogweb-scala - scala) 
- chaos - activity/y/mesosphere/chaos)
- **colossus** - activity/y/tumblr/colossus)
- **finatra** - activity/y/twitter/finatra)
- **framework** - activity/y/lift/framework)
- peregrine - activity/y/dvarelap/peregrine)
- **playframework** - activity/y/playframework/playframework)
- pagelets - activity/y/splink/pagelets)
- reactive - activity/y/nafg/reactive)
- **scalajs-react** - react) 
- **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)
- xitrum - framework/xitrum) 
- youi - activity/y/outr/youi)
- **cask** - framework. Cask makes it easy to set up a website, backend server, or REST API using Scala |  
- sharaf - activity/y/sake92/sharaf)
-
Reactive Web Frameworks
- **Binding.scala** - binding for Scala |  
- **korolev** - activity/y/fomkin/korolev)
- udash-core - core) 
- vertx-lang-scala - x3/vertx-lang-scala) 
-
Data Binding and Validation
- dupin - activity/y/yakivy/dupin)
- octopus - free validation |  
- veto - activity/y/splink/veto)
- fields - company/fields) 
-
i18n
- scala-xgettext - framework/scala-xgettext) 
- scaposer - framework/scaposer) 
-
Authentication
- 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) 
- **play2-auth** - auth) 
- **scala-oauth2-provider** - side implementation written in Scala |  
- **securesocial** - activity/y/jaliss/securesocial)
-
Cryptography
- scrypto - output-hk/scrypto) 
- tsec - safe general-cryptography library - https://jmcardon.github.io/tsec/ |  
- jose - activity/y/blackdoor/jose)
-
Testing
- cornichon - activity/y/agourlay/cornichon)
- **gatling** - activity/y/gatling/gatling)
- minitest - activity/y/monix/minitest)
- mockito-scala - scala) 
- munit - activity/y/scalameta/munit)
- **scalacheck** - based testing for Scala |  
- **scalameter** - activity/y/scalameter/scalameter)
- scalaprops - activity/y/scalaprops/scalaprops)
- **scalatest** - activity/y/scalatest/scalatest)
- scalive - framework/scalive) 
- **specs2** - activity/y/etorreborre/specs2)
- stryker4s - mutator/stryker4s) 
- weaver-test - test) 
- **testcontainers-scala** - scala) 
- utest - lihaoyi/utest) 
- **bencher** - Continuous Benchmarking |  
- **ScalaMock** - activity/y/paulbutcher/ScalaMock)
-
JSON
- **argonaut** - io/argonaut) 
- **jsoniter-scala** - time generation of safe and ultra-fast JSON codecs + circe booster |  
- **circe** - activity/y/circe/circe)
- diffson - activity/y/gnieh/diffson)
- 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) 
- scala-jsonapi - jsonapi/scala-jsonapi) 
- ScalaJack - activity/y/gzoller/ScalaJack)
- **spray-json** - json) 
- zio-json - json) 
- **jackson-module-scala** - on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes |  
- tupson - activity/y/sake92/tupson)
-
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 |  
-
Serialization
- avro-codegen - codegen) 
- **avro4s** - activity/y/sksamuel/avro4s)
- **chill** - activity/y/twitter/chill)
- msgpack-scala - scala) 
- **ScalaPB** - activity/y/scalapb/ScalaPB)
- **scodec** - activity/y/scodec/scodec)
- **scrooge** - activity/y/twitter/scrooge)
- **upickle** - free JSON & Binary (MessagePack) serialization library for Scala |  
- proto - deps/proto) 
- borer - activity/y/sirthias/borer)
-
Misc
- Agora - counting algorithms for elections. |
- **bootzooka** - based microservice or web application, without the need to write login, user registration etc. |  
- **eclair** - activity/y/ACINQ/eclair)
- fansi - lihaoyi/fansi) 
- fs2-aws - io/fs2-aws) 
- mailgun4s - activity/y/outr/mailgun4s)
- managerial - dependency Scala library for managing resources monadically |  
- media4s - line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media. |  
- play-swagger - swagger) 
- PPrint - printing value, types and type-signatures in Scala |  
- **pureconfig** - free library for loading configuration files |  
- service-chassis - chassis) 
- spliff - activity/y/sirthias/spliff)
- scountries - activity/y/lambdaworks/scountries)
- scurl-detector - detector) 
- aptus-core - core) 
-
Command Line Interfaces
- **decline** - line parser for Scala. |  
- mainargs - free library for command-line argument parsing in Scala |  
- **scallop** - activity/y/scallop/scallop)
- **scopt** - activity/y/scopt/scopt)
-
Image processing and image analysis
- scalismo - gravis/scalismo) 
- **scrimage** - Java, Kotlin, Scala image processing library |  
-
Functional Reactive Programming
- **fs2** - activity/y/typelevel/fs2)
- iteratee - activity/y/travisbrown/iteratee)
- **monix** - activity/y/monix/monix)
- REScala - distributed and reactive programming embedded in OO and FP programs. |  
- **zio** - safe, composable library for async and concurrent programming in Scala |  
-
Modularization and Dependency Injection
- **airframe** - activity/y/wvlet/airframe)
- **izumi** - oriented collection of lightweight fancy stuff for Scala toolchain |  
- **macwire** - cost, compile-time, type-safe dependency injection library. |  
- scaldi - activity/y/scaldi/scaldi)
- jam - activity/y/yakivy/jam)
-
Distributed Systems
- **akka** - driven applications on the JVM |  
- annette - wide business applications |  
- **finagle** - agnostic RPC system |  
- poppet - safe RPC Scala library. |  
- automorph - org/automorph) 
-
HTTP
- **akka-http** - first HTTP server/module of Akka |  
- reboot - activity/y/dispatch/reboot)
- **finch** - activity/y/finagle/finch)
- **http4s** - activity/y/http4s/http4s)
- lolhttp - activity/y/criteo/lolhttp)
- **requests-scala** - lihaoyi/requests-scala) 
- scalaxb - activity/y/eed3si9n/scalaxb)
- **sttp** - activity/y/softwaremill/sttp)
- **tapir** - documenting APIs |  
- endpoints4s - activity/y/endpoints4s/endpoints4s)
- frontier - deps/frontier) 
-
Semantic Web
- scowl - activity/y/phenoscape/scowl)
-
Metrics and Monitoring
- metrics-scala - scala) 
-
Parsing
- atto - activity/y/tpolecat/atto)
- **fastparse** - lihaoyi/fastparse) 
- **parboiled2** - based PEG parser generator for Scala 2.10+ |  
- **scala-parser-combinators** - based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module |  
- cats-parse - parse) 
-
Sbt plugins
- **better-monadic-for** - py/better-monadic-for) 
- **coursier** - activity/y/coursier/coursier)
- mdoc - activity/y/scalameta/mdoc)
- sbt-api-mappings - api-mappings) 
- **sbt-assembly** - JARs. Restart processes. (port of codahale/assembly-sbt) |  
- **sbt-buildinfo** - buildinfo) 
- sbt-ci-release - ci-release) 
- sbt-dependency-check - dependency-check) 
- **sbt-docker** - docker) 
- sbt-ghpages - ghpages) 
- sbt-header - header is an sbt plugin for creating file headers, e.g. copyright headers |  
- sbt-hepek - hepek) 
- sbt-ide-settings - ide-settings) 
- **sbt-jmh** - sbt plugin for JMH (Java Microbenchmark Harness) |  
- sbt-microsites - microsites) 
- mima - labs/mima) 
- **sbt-native-packager** - native-packager) 
- sbt-pack - pack) 
- sbt-pgp - pgp) 
- **sbt-release** - release) 
- sbt-scala-js-map - scala-js-map) 
- sbt-scalafmt - scalafmt) 
- **sbt-scoverage** - scoverage) 
- sbt-site - site) 
- sbt-sonatype - sonatype) 
- sbt-unidoc - unidoc) 
- **sbt-updates** - updates) 
- **sbt-eclipse** - eclipse) 
- splain - activity/y/tek/splain)
- sbt-git - git) 
-
XML / HTML
- **scala-scraper** - scraper) 
- xs4s - activity/y/ScalaWilliam/xs4s)
- phobos - binding library for Scala |  
-
Markdown
- Laika - book Generator and Customizable Text Markup Transformer for sbt, Scala and Scala.js |  
-
JavaScript
- **scala-js** - js/scala-js) 
-
Scheduling
- **akka-quartz-scheduler** - style scheduling in Akka |  
-
Templating
- **scalatags** - lihaoyi/scalatags) 
- **scalate** - activity/y/scalate/scalate)
- **twirl** - activity/y/playframework/twirl)
- hepek - activity/y/sake92/hepek)
-
Geospatial
- **geotrellis** - activity/y/locationtech/geotrellis)
- osm4scala - activity/y/simplexspatial/osm4scala)
- rtree2d - tree for ultra-fast nearest and intersection queries in plane and spherical coordinates |  
- stac4s - utils/stac4s) 
- franklin - activity/y/azavea/franklin)
-
Devops
- skuber - activity/y/hagay3/skuber)
-
-
Tutorials and courses
-
Devops
- Dr. Mark Lewis
- 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).
- 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.
- Free Scala Courses - A curated list of free Scala courses.
- Dr. Mark Lewis
- Demos and Examples in Scala (Chinese) ★ 923 ⧗ 2 - repo of sample Scala library usage, written in Chinese
- Clean Architecture Example - A step-by-step guide to develop an application using Clean Architecture in Scala.
-
-
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
- Zionomicon - Master the dark art of creating scalable, type-safe, concurrent apps with ZIO
- Scala Cookbook
-
-
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.
- 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.
-
-
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.
- 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.
- Scala Love - Podcast about the Scala Programming Language and its community
- 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
- 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
- Scalera Blog - Blog about Scala language and its environment (howto's, good practices, tips,...). Weekly posts written in both spanish and english
- Scala @LibHunt - A community driven list of useful Scala libraries, frameworks and software
- CA Art - A small project aimed at learning Scala on intermediate level by experimenting with Cellular Automata
-
Programming Languages
Categories
Sub Categories
Devops
56
Database
44
Sbt plugins
30
Extensions
28
Science and Data Analysis
27
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
186
functional-programming
22
sbt-plugin
21
json
20
sbt
18
java
18
http
13
scalajs
12
cats
12
reactive
10
spark
9
serialization
9
akka
9
database
9
reactive-streams
8
scalaz
8
typelevel
8
jvm
8
machine-learning
8
framework
7
streaming
7
scala-native
7
scala3
7
web
7
jdbc
7
zio
7
scala-js
7
mysql
6
playframework
6
fp
6
sql
6
slf4j
6
macros
6
http-client
6
scala-library
6
fs2
5
kotlin
5
dsl
5
big-data
5
http-server
5
akka-http
5
testing
5
deep-learning
5
finagle
5
rpc
5
compiler-plugin
4
html
4
android
4
validation
4
asynchronous
4