fucking-awesome-scala
A community driven list of useful Scala libraries, frameworks and software. With repository stars⭐ and forks🍴
https://github.com/correia-jpv/fucking-awesome-scala
Last synced: 7 days ago
JSON representation
-
Source
-
Devops
-
-
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. |  
- **algebird** - activity/y/twitter/algebird)
- **spark-nlp** - nlp) 
- **squants** - activity/y/typelevel/squants)
- **breeze** - activity/y/scalanlp/breeze)
- doddle-model - model: machine learning in Scala. |  
- libra - ithaca/libra) 
- LoMRF - source implementation of Markov Logic Networks |  
- mgo - objective optimisation |   🌎 [MLLib](spark.apache.org/mllib/) | Machine Learning framework for Spark |
- numsca - activity/y/botkop/numsca)
- onnx-scala - scala) 
- openmole - activity/y/openmole/openmole)
- Optimus - activity/y/vagmcs/Optimus) 🌎 [OscaR](bitbucket.org/oscarlib/oscar/wiki/Home) | a Scala toolkit for solving Operations Research problems |
- rings - activity/y/PoslavskySV/rings)
- **spire** - activity/y/typelevel/spire)
- VecMatLib - activity/y/ScalaMath/VecMatLib)
-
Distributed Systems
- **akka** - driven applications on the JVM |  
- **finagle** - agnostic RPC system |  
- annette - wide business applications |  
- poppet - safe RPC Scala library. |  
- automorph - org/automorph) 
-
Extensions
- **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 |  
-
Web Frameworks
- **scalajs-react** - react) 
- **playframework** - activity/y/playframework/playframework)
- **finatra** - activity/y/twitter/finatra)
- youi - activity/y/outr/youi)
- 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)
- **scalatra** - performance, async web framework, inspired by Sinatra |  
- **unfiltered** - activity/y/unfiltered/unfiltered)
- sharaf - activity/y/sake92/sharaf)
-
Big Data
- **spark** - A unified analytics engine for large-scale data processing |  
- **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. |  
- **scio** - activity/y/spotify/scio)
- **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 |  
-
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+ |  
-
Misc
- **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) 
-
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-doctest - doctest) 
- sbt-ide-settings - ide-settings) 
- sbt-doctest - doctest) 
- xsbt-web-plugin - web-plugin) 
-
Tools
- **gitbucket** - activity/y/gitbucket/gitbucket)
- **metals** - activity/y/scalameta/metals)
- **scalafix** - activity/y/scalacenter/scalafix) 🌎 [Scalafmt](scalameta.org/scalafmt/) | Code formatter for Scala |
- **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)
-
Database
- **sangria** - graphql/sangria) 
- **ReactiveMongo** - blocking, Reactive MongoDB Driver for Scala |  
- anorm - activity/y/playframework/anorm)
- clickhouse-scala-client - scala-client) 
- **elastic4s** - Reactive, Non Blocking, Type Safe, HTTP Client |  
- laserdisc - free Fs2 native pure FP Redis client |  
- neotypes - safe, asynchronous driver for neo4j |  
- 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)
- scala-forklift - safe data migration tool for Slick, Git and beyond. |  
- 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)
- **slick** - activity/y/slick/slick)
- **slick-pg** - pg) 
- **squeryl** - activity/y/squeryl/squeryl)
- akka-persistence-gcp-datastore - persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode. |  
- couchbase-jvm-clients - core… |  
- etcd4s - activity/y/mingchuno/etcd4s)
- mysql-binlog-stream - io/mysql-binlog-stream) 
- 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) 
- 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 |  
- udash-core - core) 
- vertx-lang-scala - x3/vertx-lang-scala) 
-
JavaScript
- **scala-js** - js/scala-js) 
-
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)
- **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)
- ninny-json - json) 
- play-json - json) 
- ScalaJack - activity/y/gzoller/ScalaJack)
- zio-json - json) 
- tupson - activity/y/sake92/tupson)
-
Data Binding and Validation
-
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)
- **chill** - activity/y/twitter/chill)
- **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 |  
-
i18n
- scaposer - framework/scaposer) 
-
Authentication
- play-googleauth - googleauth) 
- play-pac4j - pac4j) 
- **scala-oauth2-provider** - side implementation written in Scala |  
-
Cryptography
-
CSV
- 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)
-
-
Exercises
-
Devops
- 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.
- Learn-by-doing functional programming course on Scala - Covers type classes, functors, applicatives, monads, monad transformers, free monad
-
-
Tutorials and courses
-
Devops
- 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.
-
-
Books
-
Devops
-
-
Misc.
-
Devops
- 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
-
Sub Categories
Sbt plugins
33
Database
28
Extensions
27
Science and Data Analysis
19
Misc
15
Testing
15
Tools
14
JSON
13
HTTP
11
Devops
11
Web Frameworks
10
Serialization
8
Big Data
8
Distributed Systems
5
Parsing
5
Modularization and Dependency Injection
5
Functional Reactive Programming
5
Geospatial
5
Templating
4
Command Line Interfaces
4
CSV
3
XML / HTML
3
Authentication
3
Reactive Web Frameworks
3
Data Binding and Validation
2
Image processing and image analysis
2
Cryptography
2
Metrics and Monitoring
1
Graphical User Interfaces
1
i18n
1
Markdown
1
Android
1
Scheduling
1
JavaScript
1
Semantic Web
1
Keywords
scala
164
sbt-plugin
20
json
18
functional-programming
18
sbt
18
java
16
scalajs
13
http
13
cats
11
akka
9
database
9
jvm
8
typelevel
8
reactive
8
scalaz
8
spark
7
scala-native
7
scala-js
7
serialization
7
jdbc
7
fp
6
scala3
6
zio
6
streaming
6
reactive-streams
6
scala-library
6
sql
6
slf4j
6
http-server
5
http-client
5
fs2
5
framework
5
web
5
playframework
5
rpc
5
macros
5
kotlin
5
mysql
5
testing
5
finagle
5
dependency-injection
4
asynchronous
4
big-data
4
machine-learning
4
akka-http
4
dsl
4
android
4
circe
4
logging
4
high-performance
4