Repository: lauris/awesome-scala
Branch: master
Commit: 9d66edf433d8
Files: 8
Total size: 131.7 KB
Directory structure:
gitextract_jna3y95u/
├── .github/
│ └── workflows/
│ └── build-readme.yml
├── .gitignore
├── .python-version
├── LICENSE
├── Pipfile
├── README.md
├── add-metadata.py
└── template.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/build-readme.yml
================================================
name: Build and push README to master
on:
push:
branches: master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Set up Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
- name: Create local changes
run: |
python -m pip install --upgrade pip
pip install pipenv
pipenv install
pipenv run python add-metadata.py < template.md > README.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: stefanzweifel/git-auto-commit-action@v4
================================================
FILE: .gitignore
================================================
*.class
*.log
.DS_Store
# sbt specific
.cache/
.history/
.lib/
dist/*
target/
lib_managed/
src_managed/
project/boot/
project/plugins/project/
# Scala-IDE specific
.idea
.scala_dependencies
.worksheet
# project specific
.access-token
================================================
FILE: .python-version
================================================
3.8.2
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: Pipfile
================================================
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
[packages]
pygithub = "*"
[requires]
python_version = "3.8"
================================================
FILE: README.md
================================================
<!--- This file is automatically generated. Do not edit directly. -->
Awesome Scala [](https://github.com/sindresorhus/awesome)
=============
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](https://github.com/vinta/awesome-python). Other amazingly awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list.
Also awesome is [Scaladex](https://index.scala-lang.org/), 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
- [Learning Scala](#learning-scala)
- [Projects](#projects)
- [Android](#android)
- [Archive and Compression](#archive-and-compression)
- [Artificial Intelligence](#artificial-intelligence)
- [Authentication](#authentication)
- [Authorization](#authorization)
- [Big Data](#big-data)
- [Command Line Interfaces](#command-line-interfaces)
- [Cryptography](#cryptography)
- [CSV](#csv)
- [Data Binding and Validation](#data-binding-and-validation)
- [Database](#database)
- [DevOps](#devops)
- [Distributed Systems](#distributed-systems)
- [Extensions](#extensions)
- [Functional Reactive Programming](#functional-reactive-programming)
- [Geospatial](#geospatial)
- [Graphical User Interfaces](#graphical-user-interfaces)
- [HTTP](#http)
- [i18n](#i18n)
- [Image processing and image analysis](#image-processing-and-image-analysis)
- [JavaScript](#javascript)
- [JSON](#json)
- [Markdown](#markdown)
- [Metrics and Monitoring](#metrics-and-monitoring)
- [Misc](#misc)
- [Modularization and Dependency Injection](#modularization-and-dependency-injection)
- [Parsing](#parsing)
- [Reactive Web Frameworks](#reactive-web-frameworks)
- [Sbt plugins](#sbt-plugins)
- [Science and Data Analysis](#science-and-data-analysis)
- [Scheduling](#scheduling)
- [Semantic Web](#semantic-web)
- [Serialization](#serialization)
- [Templating](#templating)
- [Testing](#testing)
- [Tools](#tools)
- [Web Frameworks](#web-frameworks)
- [XML / HTML](#xml--html)
- [YAML](#yaml)
- [Learning Scala](#learning-scala)
- [Books](#books)
- [Exercises](#exercises)
- [Tutorials and courses](#tutorials-and-courses)
- [Commercial courses](#commercial-courses)
- [Community members' blogs](#community-members-blogs)
- [Company Blogs](#company-blogs)
- [Podcasts](#podcasts)
- [Contributing](#contributing)
### Archive and Compression
Name | Description | GitHub Activity
---- | ----------- | ---------------
### Artificial Intelligence
Name | Description | GitHub Activity
---- | ----------- | ---------------
### Database
*Database access libraries in Scala.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[akka-persistence-gcp-datastore](https://github.com/innFactory/akka-persistence-gcp-datastore) | akka-persistence-gcp-datastore is a journal and snapshot store plugin for akka-persistence using google cloud firestore in datastore mode. |  
[anorm](https://github.com/playframework/anorm) | The Anorm database library |  
[clickhouse-scala-client](https://github.com/crobox/clickhouse-scala-client) | Clickhouse Scala Client with Reactive Streams support |  
[couchbase-jvm-clients](https://github.com/couchbase/couchbase-jvm-clients) | The Couchbase Monorepo for JVM Clients: Java, Scala, io-core… |  
[**doobie**](https://github.com/typelevel/doobie) | Functional JDBC layer for Scala. |  
[**elastic4s**](https://github.com/Philippus/elastic4s) | 🔍 Elasticsearch Scala Client - Reactive, Non Blocking, Type Safe, HTTP Client |  
[etcd4s](https://github.com/mingchuno/etcd4s) | Scala etcd client implementing V3 APIs |  
[laserdisc](https://github.com/laserdisc-io/laserdisc) | A Future-free Fs2 native pure FP Redis client |  
[mysql-binlog-stream](https://github.com/laserdisc-io/mysql-binlog-stream) | None |  
[neotypes](https://github.com/neotypes/neotypes) | Scala lightweight, type-safe, asynchronous driver for neo4j |  
[pulsar4s](https://github.com/CleverCloud/pulsar4s) | Idiomatic, typesafe, and reactive Scala client for Apache Pulsar |  
[**zio-quill**](https://github.com/zio/zio-quill) | Compile-time Language Integrated Queries for Scala |  
[**ReactiveMongo**](https://github.com/ReactiveMongo/ReactiveMongo) | :leaves: Non-blocking, Reactive MongoDB Driver for Scala |  
[**rediscala**](https://github.com/etaty/rediscala) | Non-blocking, Reactive Redis driver for Scala (with Sentinel support) |  
[relate](https://github.com/lucidsoftware/relate) | Performant database access in Scala |  
[**sangria**](https://github.com/sangria-graphql/sangria) | Scala GraphQL implementation |  
[scala-forklift](https://github.com/lastland/scala-forklift) | Type-safe data migration tool for Slick, Git and beyond. |  
[scalarelational](https://github.com/outr/scalarelational) | Type-Safe framework for defining, modifying, and querying SQL databases |  
[**scalikejdbc**](https://github.com/scalikejdbc/scalikejdbc) | A tidy SQL-based DB access library for Scala developers. This library naturally wraps JDBC APIs and provides you easy-to-use APIs. |  
[scanamo](https://github.com/scanamo/scanamo) | Simpler DynamoDB access for Scala |  
[**slick**](https://github.com/slick/slick) | Slick (Scala Language Integrated Connection Kit) is a modern database query and access library for Scala |  
[**slick-pg**](https://github.com/tminglei/slick-pg) | Slick extensions for PostgreSQL |  
[squery](https://github.com/sake92/squery) | Simple SQL queries in Scala 3 |  
[**squeryl**](https://github.com/squeryl/squeryl) | A Scala DSL for talking with databases with minimum verbosity and maximum type safety |  
[molecule](https://github.com/scalamolecule/molecule) | Molecule translates custom Scala code to database queries for multiple databases. |  
[zio-redis](https://github.com/zio/zio-redis) | A ZIO-based redis client |  
[**skunk**](https://github.com/typelevel/skunk) | A data access library for Scala + Postgres. |  
[kvs](https://github.com/zero-deps/kvs) | Highly available distributed strong eventual consistent and sequentially consistent storage with feeds, sorting and search |  
### Messaging
Name | Description | GitHub Activity
---- | ----------- | ---------------
### Graphical User Interfaces
*Libraries for creation of graphical user interfaces*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**scalafx**](https://github.com/scalafx/scalafx) | ScalaFX simplifies creation of JavaFX-based user interfaces in Scala |  
### Web Frameworks
*Scala frameworks for web development.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[analogweb-scala](https://github.com/analogweb/analogweb-scala) | Tiny High Performance HTTP Server for Scala |  
[**cask**](https://github.com/com-lihaoyi/cask) | Cask: a Scala HTTP micro-framework. Cask makes it easy to set up a website, backend server, or REST API using Scala |  
[**finatra**](https://github.com/twitter/finatra) | Fast, testable, Scala services built on TwitterServer and Finagle |  
[**framework**](https://github.com/lift/framework) | Lift Framework |  
[**playframework**](https://github.com/playframework/playframework) | The Community Maintained High Velocity Web Framework For Java and Scala. |  
[**scalajs-react**](https://github.com/japgolly/scalajs-react) | Facebook's React on Scala.JS |  
[**scalatra**](https://github.com/scalatra/scalatra) | Tiny Scala high-performance, async web framework, inspired by Sinatra |  
[sharaf](https://github.com/sake92/sharaf) | Minimalistic Scala 3 web framework |  
[**unfiltered**](https://github.com/unfiltered/unfiltered) | A toolkit for servicing HTTP requests in Scala |  
[youi](https://github.com/outr/youi) | Next 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*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**Binding.scala**](https://github.com/ThoughtWorksInc/Binding.scala) | Reactive data-binding for Scala |  
[udash-core](https://github.com/UdashFramework/udash-core) | Scala framework for building beautiful and maintainable web applications. |  
[vertx-lang-scala](https://github.com/vert-x3/vertx-lang-scala) | Vert.x for Scala |  
### Data Binding and Validation
*Scala libraries for data binding and validation*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[dupin](https://github.com/yakivy/dupin) | Minimal, idiomatic, customizable validation Scala library. |  
[octopus](https://github.com/krzemin/octopus) | Scala library for boilerplate-free validation |  
### i18n
*Scala libraries for i18n.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[scaposer](https://github.com/xitrum-framework/scaposer) | GNU Gettext .po file loader for Scala |  
### Authentication
*Libraries for implementing authentications schemes.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[play-googleauth](https://github.com/guardian/play-googleauth) | Simple play module for authenticating against Google |  
[play-pac4j](https://github.com/pac4j/play-pac4j) | Security library for Play framework 2 in Java and Scala: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT... |  
[**scala-oauth2-provider**](https://github.com/nulab/scala-oauth2-provider) | OAuth 2.0 server-side implementation written in Scala |  
### Cryptography
*Cryptography and Encryption Libraries.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[scrypto](https://github.com/input-output-hk/scrypto) | Cryptographic primitives for Scala |  
[jose](https://github.com/blackdoor/jose) | Extensible JOSE library for Scala |  
### Testing
*Libraries for code testing.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**bencher**](https://github.com/bencherdev/bencher) | 🐰 Bencher - Continuous Benchmarking |  
[cornichon](https://github.com/agourlay/cornichon) | Testing tool in Scala for HTTP JSON API |  
[**gatling**](https://github.com/gatling/gatling) | Modern Load Testing as Code |  
[minitest](https://github.com/monix/minitest) | The super light testing library for Scala and Scala.js |  
[mockito-scala](https://github.com/mockito/mockito-scala) | Mockito for Scala language |  
[munit](https://github.com/scalameta/munit) | Scala testing library with actionable errors and extensible APIs |  
[**scalacheck**](https://github.com/typelevel/scalacheck) | Property-based testing for Scala |  
[**ScalaMock**](https://github.com/paulbutcher/ScalaMock) | Native Scala mocking framework |  
[scalaprops](https://github.com/scalaprops/scalaprops) | property based testing library for Scala |  
[**scalatest**](https://github.com/scalatest/scalatest) | A testing tool for Scala and Java developers |  
[**specs2**](https://github.com/etorreborre/specs2) | Software Specifications for Scala |  
[stryker4s](https://github.com/stryker-mutator/stryker4s) | Mutation testing for Scala |  
[weaver-test](https://github.com/disneystreaming/weaver-test) | A test framework that runs everything in parallel. |  
[**testcontainers-scala**](https://github.com/testcontainers/testcontainers-scala) | Docker containers for testing in scala |  
[utest](https://github.com/com-lihaoyi/utest) | A simple testing framework for Scala |  
### JSON
*Libraries for work with json.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**argonaut**](https://github.com/argonaut-io/argonaut) | Purely functional JSON parser and library in scala. |  
[borer](https://github.com/sirthias/borer) | Efficient CBOR and JSON (de)serialization in Scala |  
[**circe**](https://github.com/circe/circe) | Yet another JSON library for Scala |  
[diffson](https://github.com/gnieh/diffson) | A scala diff/patch library for Json |  
[**jackson-module-scala**](https://github.com/FasterXML/jackson-module-scala) | Add-on module for Jackson (https://github.com/FasterXML/jackson) to support Scala-specific datatypes |  
[jawn](https://github.com/typelevel/jawn) | Jawn is for parsing jay-sawn (JSON) |  
[**json4s**](https://github.com/json4s/json4s) | JSON library |  
[**jsoniter-scala**](https://github.com/plokhotnyuk/jsoniter-scala) | Scala macros for compile-time generation of safe and ultra-fast JSON codecs + circe booster |  
[ninny-json](https://github.com/nrktkt/ninny-json) | JSON typeclasses that know the difference between null and absent fields |  
[play-json](https://github.com/playframework/play-json) | The Play JSON library |  
[ScalaJack](https://github.com/gzoller/ScalaJack) | Fast JSON parser/generator for Scala |  
[**spray-json**](https://github.com/spray/spray-json) | A lightweight, clean and simple JSON implementation in Scala |  
[tupson](https://github.com/sake92/tupson) | Stupid simple Scala 3 library for writing and reading JSON |  
[zio-json](https://github.com/zio/zio-json) | Fast, secure JSON library with tight ZIO integration. |  
### YAML
*Libraries for work with YAML.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
### CSV
*Libraries for work with CSV.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[kantan.csv](https://github.com/nrinaudo/kantan.csv) | CSV handling library for Scala |  
[**scala-csv**](https://github.com/tototoshi/scala-csv) | CSV Reader/Writer for Scala |  
[spata](https://github.com/fingo/spata) | Functional, stream-based CSV processor for Scala |  
### Serialization
*Libraries for serializing and deserializing data for storage or transport.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[borer](https://github.com/sirthias/borer) | Efficient CBOR and JSON (de)serialization in Scala |  
[**avro4s**](https://github.com/sksamuel/avro4s) | Avro schema generation and serialization / deserialization for Scala |  
[**chill**](https://github.com/twitter/chill) | Scala extensions for the Kryo serialization library |  
[**ScalaPB**](https://github.com/scalapb/ScalaPB) | Protocol buffer compiler for Scala. |  
[**scodec**](https://github.com/scodec/scodec) | Scala combinator library for working with binary data |  
[**scrooge**](https://github.com/twitter/scrooge) | A Thrift parser/generator |  
[**upickle**](https://github.com/com-lihaoyi/upickle) | uPickle: a simple, fast, dependency-free JSON & Binary (MessagePack) serialization library for Scala |  
[proto](https://github.com/zero-deps/proto) | Lightweight 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.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**algebird**](https://github.com/twitter/algebird) | Abstract Algebra for Scala |  
[**ipex-llm**](https://github.com/intel-analytics/ipex-llm) | Accelerate local LLM inference and finetuning (LLaMA, Mistral, ChatGLM, Qwen, Baichuan, Mixtral, Gemma, Phi, MiniCPM, etc.) on Intel XPU (e.g., local PC with iGPU and NPU, discrete GPU such as Arc, Flex and Max); seamlessly integrate with llama.cpp, Ollama, HuggingFace, LangChain, LlamaIndex, GraphRAG, DeepSpeed, vLLM, FastChat, Axolotl, etc. |  
[**breeze**](https://github.com/scalanlp/breeze) | Breeze is/was a numerical processing library for Scala. |  
[doddle-model](https://github.com/picnicml/doddle-model) | :cake: doddle-model: machine learning in Scala. |  
[libra](https://github.com/to-ithaca/libra) | A dimensional analysis library based on dependent types |  
[LoMRF](https://github.com/anskarl/LoMRF) | LoMRF is an open-source implementation of Markov Logic Networks |  
[mgo](https://github.com/openmole/mgo) | Purely functional genetic algorithms for multi-objective optimisation |  
[MLLib](https://spark.apache.org/mllib/) | Machine Learning framework for Spark |
[numsca](https://github.com/botkop/numsca) | numsca is numpy for scala |  
[onnx-scala](https://github.com/EmergentOrder/onnx-scala) | An ONNX (Open Neural Network eXchange) API and backend for typeful, functional deep learning and classical machine learning in Scala 3 |  
[openmole](https://github.com/openmole/openmole) | Workflow engine for exploration of simulation models using high throughput computing |  
[Optimus](https://github.com/vagmcs/Optimus) | Optimus is a mathematical programming library for Scala. |  
[OscaR](https://bitbucket.org/oscarlib/oscar/wiki/Home) | a Scala toolkit for solving Operations Research problems |
[rings](https://github.com/PoslavskySV/rings) | Rings: efficient JVM library for polynomial rings |  
[**smile**](https://github.com/haifengl/smile) | Statistical Machine Intelligence & Learning Engine |  
[**spire**](https://github.com/typelevel/spire) | Powerful new number types and numeric abstractions for Scala. |  
[**squants**](https://github.com/typelevel/squants) | The Scala API for Quantities, Units of Measure and Dimensional Analysis |  
[**zeppelin**](https://github.com/apache/zeppelin) | Web-based notebook that enables data-driven, interactive data analytics and collaborative documents with SQL, Scala and more. |  
[**spark-nlp**](https://github.com/JohnSnowLabs/spark-nlp) | State of the Art Natural Language Processing |  
[VecMatLib](https://github.com/ScalaMath/VecMatLib) | Open source Scala library that provides data structures for vectors and matrices |  
### Big Data
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**flink**](https://github.com/apache/flink) | Apache Flink |  
[gridscale](https://github.com/openmole/gridscale) | Scala library for accessing various file, batch systems, job schedulers and grid middlewares. |  
[**kafka**](https://github.com/apache/kafka) | Mirror of Apache Kafka |  
[**alpakka-kafka**](https://github.com/akka/alpakka-kafka) | Alpakka Kafka connector - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka. |  
[**scio**](https://github.com/spotify/scio) | A Scala API for Apache Beam and Google Cloud Dataflow. |  
[Scrunch](http://crunch.apache.org/scrunch.html) | A Scala wrapper for [Apache Crunch](http://crunch.apache.org/index.html) which provides a framework for writing, testing, and running MapReduce pipelines. |
[**spark**](https://github.com/apache/spark) | Apache Spark - A unified analytics engine for large-scale data processing |  
[gallia-core](https://github.com/galliaproject/gallia-core) | A schema-aware Scala library for data transformation |  
[**nussknacker**](https://github.com/TouK/nussknacker) | Low-code tool for automating actions on real time data | Stream processing for the users. |  
### Command Line Interfaces
*Libraries for creation of command line interfaces*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**decline**](https://github.com/bkirwi/decline) | A composable command-line parser for Scala. |  
[mainargs](https://github.com/com-lihaoyi/mainargs) | A small, convenient, dependency-free library for command-line argument parsing in Scala |  
[**scallop**](https://github.com/scallop/scallop) | a simple Scala CLI parsing library |  
[**scopt**](https://github.com/scopt/scopt) | command line options parsing for Scala |  
### Image processing and image analysis
*2D and 3D image processing and image analysis*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[scalismo](https://github.com/unibas-gravis/scalismo) | Scalable Image Analysis and Shape Modelling |  
[**scrimage**](https://github.com/sksamuel/scrimage) | JVM - Java, Kotlin, Scala image processing library |  
### Sound processing and music
Name | Description | GitHub Activity
---- | ----------- | ---------------
### Functional Reactive Programming
*Event streams, signals, observables, etc.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**fs2**](https://github.com/typelevel/fs2) | Compositional, streaming I/O library for Scala |  
[iteratee](https://github.com/travisbrown/iteratee) | Iteratees for Cats |  
[**monix**](https://github.com/monix/monix) | Asynchronous, Reactive Programming for Scala and Scala.js. |  
[REScala](https://github.com/rescala-lang/REScala) | REScala - distributed and reactive programming embedded in OO and FP programs. |  
[**zio**](https://github.com/zio/zio) | ZIO — A type-safe, composable library for async and concurrent programming in Scala |  
[vertx-lang-scala](https://github.com/vert-x3/vertx-lang-scala) | Vert.x for Scala |  
### Modularization and Dependency Injection
*Modularization of applications, dependency injection, etc.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**airframe**](https://github.com/wvlet/airframe) | Essential Building Blocks for Scala |  
[**izumi**](https://github.com/7mind/izumi) | Productivity-oriented collection of lightweight fancy stuff for Scala toolchain |  
[**macwire**](https://github.com/softwaremill/macwire) | Zero-cost, compile-time, type-safe dependency injection library. |  
[scaldi](https://github.com/scaldi/scaldi) | Lightweight Scala Dependency Injection Library |  
[jam](https://github.com/yakivy/jam) | Incredibly simple DI Scala library. |  
### Distributed Systems
*Libraries and frameworks for writing distributed applications.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**akka**](https://github.com/akka/akka) | Build highly concurrent, distributed, and resilient message-driven applications on the JVM |  
[annette](https://github.com/annetteplatform/annette) | Platform to build distributed, scalable, enterprise-wide business applications |  
[**finagle**](https://github.com/twitter/finagle) | A fault tolerant, protocol-agnostic RPC system |  
[poppet](https://github.com/yakivy/poppet) | Minimal, type-safe RPC Scala library. |  
[automorph](https://github.com/automorph-org/automorph) | RPC client and server library for Scala |  
### Extensions
*Scala extensions.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**Ammonite**](https://github.com/com-lihaoyi/Ammonite) | Scala Scripting |  
[**better-files**](https://github.com/pathikrit/better-files) | Simple, safe and intuitive Scala I/O |  
[blindsight](https://github.com/tersesystems/blindsight) | Blindsight is a Scala logging API with DSL based structured logging, fluent logging, semantic logging, flow logging, and context aware logging. |  
[**cats**](https://github.com/typelevel/cats) | Lightweight, modular, and extensible library for functional programming. |  
[**chimney**](https://github.com/scalalandio/chimney) | Scala library for boilerplate-free, type-safe data transformations |  
[chronoscala](https://github.com/chronoscala/chronoscala) | A JSR-310 port of nscala_time |  
[Dsl.scala](https://github.com/ThoughtWorksInc/Dsl.scala) | A framework to create embedded Domain-Specific Languages in Scala |  
[each](https://github.com/ThoughtWorksInc/each) | A macro library that converts native imperative syntax to scalaz's monadic expressions |  
[**eff**](https://github.com/atnos-org/eff) | Eff monad for cats - https://atnos-org.github.io/eff |  
[enableIf.scala](https://github.com/ThoughtWorksInc/enableIf.scala) | A library that toggles Scala code at compile-time, like #if in C/C++ |  
[**enumeratum**](https://github.com/lloydmeta/enumeratum) | A type-safe, reflection-free, powerful enumeration implementation for Scala with exhaustive pattern match warnings and helpful integrations. |  
[log4s](https://github.com/Log4s/log4s) | High-performance SLF4J wrapper for Scala. |  
[**izumi**](https://github.com/7mind/izumi) | Productivity-oriented collection of lightweight fancy stuff for Scala toolchain |  
[**Monocle**](https://github.com/optics-dev/Monocle) | Optics library for Scala |  
[**nscala-time**](https://github.com/nscala-time/nscala-time) | A new Scala wrapper for Joda Time based on scala-time |  
[**quicklens**](https://github.com/softwaremill/quicklens) | Modify deeply nested case class fields |  
[**refined**](https://github.com/fthomas/refined) | Refinement types for Scala |  
[**scala-async**](https://github.com/scala/scala-async) | An asynchronous programming facility for Scala |  
[**scala-graph**](https://github.com/scala-graph/scala-graph) | 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. |  
[**scala-logging**](https://github.com/lightbend-labs/scala-logging) | Convenient and performant logging library for Scala wrapping SLF4J. |  
[**scalameta**](https://github.com/scalameta/scalameta) | Library to read, analyze, transform and generate Scala programs |  
[**scalaz**](https://github.com/scalaz/scalaz) | Principled Functional Programming in Scala |  
[**scribe**](https://github.com/outr/scribe) | The fastest logging library in the world. Built from scratch in Scala and programmatically configurable. |  
[**shapeless**](https://github.com/milessabin/shapeless) | Generic programming for Scala |  
[**simulacrum**](https://github.com/typelevel/simulacrum) | First class syntax support for type classes in Scala |  
[squid](https://github.com/epfldata/squid) | Squid – type-safe metaprogramming and compilation framework for Scala |  
[**tinylog**](https://github.com/tinylog-org/tinylog) | tinylog is a lightweight logging framework for Java, Kotlin, Scala, and Android |  
[**util**](https://github.com/twitter/util) | Wonderful reusable code from Twitter |  
### Misc
*Projects that don't fit into any specific category.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**Ammonite**](https://github.com/com-lihaoyi/Ammonite) | Scala Scripting |  
[**bootzooka**](https://github.com/softwaremill/bootzooka) | Simple project to quickly start developing a Scala-based microservice or web application, without the need to write login, user registration etc. |  
[**eclair**](https://github.com/ACINQ/eclair) | A scala implementation of the Lightning Network. |  
[fansi](https://github.com/com-lihaoyi/fansi) | Scala/Scala.js library for manipulating Fancy Ansi colored strings |  
[fs2-aws](https://github.com/laserdisc-io/fs2-aws) | fs2 utilities to interact with AWS |  
[mailgun4s](https://github.com/outr/mailgun4s) | Mailgun API implementation in Scala |  
[managerial](https://github.com/dvgica/managerial) | A zero-dependency Scala library for managing resources monadically |  
[media4s](https://github.com/outr/media4s) | Scala command-line wrapper around ffmpeg, ffprobe, ImageMagick, and other tools relating to media. |  
[play-swagger](https://github.com/iheartradio/play-swagger) | Swagger spec generator for play framework |  
[PPrint](https://github.com/com-lihaoyi/PPrint) | Pretty-printing value, types and type-signatures in Scala |  
[**pureconfig**](https://github.com/pureconfig/pureconfig) | A boilerplate-free library for loading configuration files |  
[service-chassis](https://github.com/allawala/service-chassis) | A scala chassis to get your applications and services bootstrapped quickly |  
[spliff](https://github.com/sirthias/spliff) | Efficient diffing in Scala |  
[scountries](https://github.com/lambdaworks/scountries) | Scala library that provides an enumeration of ISO 3166 codes for countries, along with their subdivisions. |  
[scurl-detector](https://github.com/lambdaworks/scurl-detector) | Scala library that detects and extracts URLs from text. |  
[aptus-core](https://github.com/aptusproject/aptus-core) | A utility library aiming to simplify the Scala coding experience. |  
### Android
*Scala libraries and wrappers for Android development.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**scaloid**](https://github.com/pocorall/scaloid) | Scaloid makes your Android code easy to understand and maintain. |  
### HTTP
*Scala libraries and wrappers for HTTP clients.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**akka-http**](https://github.com/akka/akka-http) | The Streaming-first HTTP server/module of Akka |  
[reboot](https://github.com/dispatch/reboot) | Scala wrapper for the Java AsyncHttpClient. |  
[**finch**](https://github.com/finagle/finch) | Scala combinator library for building Finagle HTTP services |  
[**http4s**](https://github.com/http4s/http4s) | A minimal, idiomatic Scala interface for HTTP |  
[lolhttp](https://github.com/criteo/lolhttp) | An HTTP Server and Client library for Scala. |  
[**requests-scala**](https://github.com/com-lihaoyi/requests-scala) | A Scala port of the popular Python Requests HTTP client: flexible, intuitive, and straightforward to use. |  
[scalaxb](https://github.com/eed3si9n/scalaxb) | scalaxb is an XML data binding tool for Scala. |  
[**sttp**](https://github.com/softwaremill/sttp) | The Scala HTTP client you always wanted! |  
[**tapir**](https://github.com/softwaremill/tapir) | Rapid development of self-documenting APIs |  
[endpoints4s](https://github.com/endpoints4s/endpoints4s) | Describe HTTP endpoints in Scala and derive clients, servers, and documentation |  
[frontier](https://github.com/zero-deps/frontier) | A lightweight HTTP/WebSocket server built with ZIO |  
### Semantic Web
*Scala libraries for interactions with the Web of Data, and other RDF tools.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[scowl](https://github.com/phenoscape/scowl) | A Scala DSL for programming with the OWL API. |  
### Metrics and Monitoring
*Scala libraries for gathering metrics and monitoring applications.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[metrics-scala](https://github.com/erikvanoosten/metrics-scala) | The scala API for Dropwizard's Metrics. |  
### Parsing
*Scala libraries for creating parsers.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[atto](https://github.com/tpolecat/atto) | friendly little parsers |  
[**fastparse**](https://github.com/com-lihaoyi/fastparse) | Writing Fast Parsers Fast in Scala |  
[**parboiled2**](https://github.com/sirthias/parboiled2) | A macro-based PEG parser generator for Scala 2.10+ |  
[**scala-parser-combinators**](https://github.com/scala/scala-parser-combinators) | simple combinator-based parsing for Scala. formerly part of the Scala standard library, now a separate community-maintained module |  
[cats-parse](https://github.com/typelevel/cats-parse) | A parsing library for the cats ecosystem |  
### Sbt plugins
*Sbt plugins to make your life easier.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**better-monadic-for**](https://github.com/oleg-py/better-monadic-for) | Desugaring scala `for` without implicit `withFilter`s |  
[**coursier**](https://github.com/coursier/coursier) | Pure Scala Artifact Fetching |  
[mdoc](https://github.com/scalameta/mdoc) | Typechecked markdown documentation for Scala |  
[sbt-api-mappings](https://github.com/ThoughtWorksInc/sbt-api-mappings) | An Sbt plugin that fills apiMappings for common Scala libraries. |  
[**sbt-assembly**](https://github.com/sbt/sbt-assembly) | Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt) |  
[**sbt-buildinfo**](https://github.com/sbt/sbt-buildinfo) | I know this because build.sbt knows this. |  
[sbt-ci-release](https://github.com/sbt/sbt-ci-release) | sbt plugin to automate Sonatype releases from GitHub Actions |  
[sbt-dependency-check](https://github.com/albuch/sbt-dependency-check) | SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). :rainbow: |  
[**sbt-docker**](https://github.com/marcuslonnberg/sbt-docker) | Create Docker images directly from sbt |  
[sbt-doctest](https://github.com/tkawachi/sbt-doctest) | Doctest for scala |  
[sbt-ghpages](https://github.com/sbt/sbt-ghpages) | git, site and ghpages support for sbt projects. |  
[sbt-header](https://github.com/sbt/sbt-header) | sbt-header is an sbt plugin for creating file headers, e.g. copyright headers |  
[sbt-hepek](https://github.com/sake92/sbt-hepek) | Sbt plugin for rendering Scala objects to files. And more! |  
[sbt-ide-settings](https://github.com/JetBrains/sbt-ide-settings) | SBT plugin for tweaking various IDE settings |  
[**sbt-jmh**](https://github.com/sbt/sbt-jmh) | "Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness) |  
[sbt-microsites](https://github.com/47degrees/sbt-microsites) | An sbt plugin to create awesome microsites for your project |  
[mima](https://github.com/lightbend-labs/mima) | A tool for catching binary incompatibility in Scala |  
[**sbt-native-packager**](https://github.com/sbt/sbt-native-packager) | sbt Native Packager |  
[sbt-pack](https://github.com/xerial/sbt-pack) | A sbt plugin for creating distributable Scala packages. |  
[sbt-pgp](https://github.com/sbt/sbt-pgp) | PGP plugin for sbt |  
[**sbt-release**](https://github.com/sbt/sbt-release) | A release plugin for sbt |  
[sbt-scala-js-map](https://github.com/ThoughtWorksInc/sbt-scala-js-map) | A Sbt plugin that configures source mapping for Scala.js projects hosted on Github |  
[sbt-scalafmt](https://github.com/scalameta/sbt-scalafmt) | sbt plugin for Scalafmt |  
[**sbt-scoverage**](https://github.com/scoverage/sbt-scoverage) | sbt plugin for scoverage |  
[sbt-site](https://github.com/sbt/sbt-site) | Site generation for sbt |  
[sbt-sonatype](https://github.com/xerial/sbt-sonatype) | A sbt plugin for publishing Scala/Java projects to the Maven central. |  
[sbt-unidoc](https://github.com/sbt/sbt-unidoc) | sbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects. |  
[**sbt-updates**](https://github.com/rtimush/sbt-updates) | sbt plugin that can check Maven and Ivy repositories for dependency updates |  
[**sbt-eclipse**](https://github.com/sbt/sbt-eclipse) | Plugin for sbt to create Eclipse project definitions |  
[splain](https://github.com/tek/splain) | better implicit errors for scala |  
[xsbt-web-plugin](https://github.com/earldouglas/xsbt-web-plugin) | Servlet support for sbt |  
[sbt-git](https://github.com/sbt/sbt-git) | A git plugin for sbt |  
### XML / HTML
*XML and HTML generation and processing*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**scala-scraper**](https://github.com/ruippeixotog/scala-scraper) | A Scala library for scraping content from HTML pages |  
[xs4s](https://github.com/ScalaWilliam/xs4s) | XML Streaming for Scala including FS2/cats support |  
[phobos](https://github.com/valentiay/phobos) | Efficient and expressive XML data-binding library for Scala |  
### Markdown
Name | Description | GitHub Activity
---- | ----------- | ---------------
[Laika](https://github.com/typelevel/Laika) | Site and E-book Generator and Customizable Text Markup Transformer for sbt, Scala and Scala.js |  
### JavaScript
*JavaScript generation and interop libraries.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**scala-js**](https://github.com/scala-js/scala-js) | Scala.js, the Scala to JavaScript compiler |  
### Scheduling
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**akka-quartz-scheduler**](https://github.com/enragedginger/akka-quartz-scheduler) | Quartz Extension and utilities for cron-style scheduling in Akka |  
### Templating
*Web templating engines.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**scalatags**](https://github.com/com-lihaoyi/scalatags) | ScalaTags is a small XML/HTML construction library for Scala. |  
[**scalate**](https://github.com/scalate/scalate) | Scalate is a Scala based template engine which supports HAML, Mustache and JSP, Erb and Velocity style syntaxes. |  
[**twirl**](https://github.com/playframework/twirl) | Twirl is Play's default template engine |  
[hepek](https://github.com/sake92/hepek) | Typesafe HTML templates and static site generator in pure Scala |  
### Tools
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**bloop**](https://github.com/scalacenter/bloop) | Bloop is a build server and CLI tool to compile, test and run Scala fast from any editor or build tool. |  
[**coursier**](https://github.com/coursier/coursier) | Pure Scala Artifact Fetching |  
[dregex](https://github.com/marianobarrios/dregex) | dregex is a Java 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-interpolator](https://github.com/plokhotnyuk/fast-string-interpolator) | Scala macro that generates ultra-fast string interpolators. |  
[fastring](https://github.com/Atry/fastring) | Extremely fast string formatting |  
[**gitbucket**](https://github.com/gitbucket/gitbucket) | A Git platform powered by Scala with easy installation, high extensibility & GitHub API compatibility |  
[**giter8**](https://github.com/foundweekends/giter8) | a command line tool to apply templates defined on GitHub |  
[**metals**](https://github.com/scalameta/metals) | Scala language server with rich IDE features 🚀 |  
[**mill**](https://github.com/com-lihaoyi/mill) | Mill is a fast JVM build tool that supports Java and Scala. 2-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**](https://github.com/sbt/sbt) | sbt, the interactive build tool |  
[**scalafix**](https://github.com/scalacenter/scalafix) | Refactoring and linting tool for Scala |  
[Scalafmt](https://scalameta.org/scalafmt/) | Code formatter for Scala |
[**scalariform**](https://github.com/scala-ide/scalariform) | Scala source code formatter |  
[**scapegoat**](https://github.com/scapegoat-scala/scapegoat) | Scala compiler plugin for static code analysis |  
[**wartremover**](https://github.com/wartremover/wartremover) | Flexible Scala code linting tool |  
[scala2plantuml](https://github.com/BotTech/scala2plantuml) | Scala2PlantUML generates PlantUML diagrams from Scala code. |  
### Geospatial
*Libraries to aid with geospatial calculations and artifacts.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[**geotrellis**](https://github.com/locationtech/geotrellis) | GeoTrellis is a geographic data processing engine for high performance applications. |  
[osm4scala](https://github.com/simplexspatial/osm4scala) | Scala and Spark library focused on reading OpenStreetMap Pbf files. |  
[rtree2d](https://github.com/plokhotnyuk/rtree2d) | RTree2D is a 2D immutable R-tree for ultra-fast nearest and intersection queries in plane and spherical coordinates |  
[stac4s](https://github.com/stac-utils/stac4s) | a scala library with primitives to build applications using the SpatioTemporal Asset Catalogs specification |  
[franklin](https://github.com/azavea/franklin) | A STAC/OGC API Features Web Service |  
### Devops
*DevOps related tools and libraries.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
[skuber](https://github.com/hagay3/skuber) | A Scala Kubernetes client library |  
# Learning Scala
*Nice books, blogs and other resources to learn Scala*
## Books
* [Essential Scala](https://underscore.io/books/essential-scala/) by Noel Welsh and Dave Gurnell - Essential Scala is aimed at experienced developers who are encountering Scala for the first time.
* [Functional and Reactive Domain Modeling](https://www.manning.com/books/functional-and-reactive-domain-modeling) by Debasish Ghosh
* [Functional Programming for Mortals](https://leanpub.com/fpmortals/read) by Sam Halliday
* [Functional Programming in Scala](https://www.manning.com/books/functional-programming-in-scala) by Paul Chiusano and Runar Bjarnason
* [Functional Programming, Simplified (Scala edition)](https://alvinalexander.com/scala/fp-book/learning-functional-programming-in-scala/) by Alvin Alexander
* [Get Programming with Scala](https://www.manning.com/books/get-programming-with-scala) by Daniela Sfregola - Tutorial-driven introduction to Scala
* [Practical FP in Scala: A hands-on approach](https://leanpub.com/pfp-scala) by Gabriel Volpe
* [Programming in Scala](https://www.artima.com/shop/programming_in_scala_4ed) by Martin Odersky, Lex Spoon, and Bill Venners
* [Pure functional HTTP APIs in Scala](https://leanpub.com/pfhais) by Jens Grassel
* [Reactive Programming with Scala and Akka](https://www.amazon.com/Reactive-Programming-Scala-Akka/dp/1783984341) - Use the concepts of reactive programming to build distributed systems running on multiple nodes
* [Scala Cookbook](http://scalacookbook.com) by Alvin Alexander
* [Scala for the Impatient](https://horstmann.com/scala/) by Cay Horstmann - Covers most Scala features with short and easy to understand explainations.
* [Scala With Cats](https://underscore.io/books/scala-with-cats/) by Noel Welsh and Dave Gurnell - 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](https://underscore.io/books/shapeless-guide/) by Dave Gurnell
* [Zionomicon](https://www.zionomicon.com) by John A. De Goes, Adam Fraser - Master the dark art of creating scalable, type-safe, concurrent apps with ZIO
## Exercises
* [S-99](http://aperiodic.net/phil/scala/s-99) - Ninety-Nine Scala Problems
* [Scala Exercises](http://scala-exercises.47deg.com/) - 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](https://exercism.org/tracks/scala/exercises) - Community-driven Scala exercises.
* [Learn-by-doing functional programming course on Scala](https://github.com/dehun/learn-fp/) - Covers type classes, functors, applicatives, monads, monad transformers, free monad
## Tutorials and courses
* [A Tour of Scala](http://docs.scala-lang.org/tour/tour-of-scala.html) - Bite-sized introductions to some of the core language concepts.
* [Functional Programming in Scala](https://www.coursera.org/specializations/scala) - Coursera Specialization (5 courses) created by Martin Odersky et al. at the EPFL (Ecole polytechnique fédérale de Lausanne).
* Resources by [Dr. Mark Lewis](http://www.cs.trinity.edu/~mlewis/) >> [Website](http://www.programmingusingscala.net/) | [Youtube Playlists](https://www.youtube.com/user/DrMarkCLewis/playlists)
* **[Demos and Examples in Scala (Chinese) ★ 923 ⧗ 2](https://github.com/jacksu/utils4s)** - repo of sample Scala library usage, written in Chinese
* [Introduction to programming with dependent types in Scala](https://stepik.org/course/2294/) - Video Course by Dmytro Mitin
* [Scala Collections Cookbook](http://colobu.com/ScalaCollectionsCookbook/) - Scala collections introduction. written in Chinese.
* [Free Scala Courses](https://skillcombo.com/topic/scala/free/) - A curated list of free Scala courses.
* [Clean Architecture Example](https://github.com/SaeidDadkhah/clean-arch-example) - A step-by-step guide to develop an application using Clean Architecture in Scala.
## Commercial courses
* [Foundations of Functional Programming in Scala](https://www.fp-tower.com/courses/foundations) - a professional video course with exercises covering covers functional principles, custom IO (effects) and functional design.
* [Scala Algorithms](https://www.scala-algorithms.com/) - 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
* http://lihaoyi.com
* http://warski.org/blog
* https://degoes.net/articles
* http://eed3si9n.com/category/tags/scala
* https://danielwestheide.com/tags/scala
* https://kubuszok.com/tags/#scala
* http://debasishg.blogspot.com
* http://appliedscala.com/blog
* http://blog.higher-order.com
* http://ktoso.github.io/scala-types-of-types
* http://scalaprof.blogspot.com
* http://torre.me.uk/docs/scala
* https://alvinalexander.com
* https://blog.bruchez.name/search/label/scala
* https://github.com/lemastero/scala_typeclassopedia
* https://pchiusano.github.io
* https://beyondthelines.net
* https://manuel.bernhardt.io/blog
## Company Blogs
* [Functional Works / Learn](https://functional.works-hub.com/learn/) - Quality resources maintained by functional works
* http://allaboutscala.com/
* http://enear.github.io/
* https://blog.knoldus.com/tag/scala/
* https://blog.scalac.io/tags/Scala/
* https://blog.softwaremill.com/tagged/scala
* https://medium.com/disney-streaming/tagged/thisweekinscala
* https://www.codacy.com/blog/
* [Scala Times](https://scalatimes.com/) - Weekly newsletter about scala
* [47 Degrees](https://www.47deg.com/blog/) - Functional Programming news, updates, and more.
## Podcasts
* [The Scala Logs](https://twitter.com/thescalalogs) - Interviewing developers, open source contributors, subject matter experts, and the like to talk about FP, Scala, open source, and their interests.
* [Scala Love](https://scala.love/) - Podcast about the Scala Programming Language and its community
* [CoRecursive Interviews](https://corecursive.com/) - In-depth Interviews with software developers, often on the subject of scala libraries and functional programming.
* [Scala for Fun & Profit](https://podcasters.spotify.com/pod/show/julien-truffaut) - Interviewing Scala users and companies.
## Communities
* [Scala Ukraine](https://t.me/scala_ukraine) - Telegram chat of Ukrainian Scala Community
## Misc.
* [Programming Community Curated Resources for Learning Scala](https://hackr.io/tutorials/learn-scala)
* [Scalera Blog](http://www.scalera.es) - Blog about Scala language and its environment (howto's, good practices, tips,...). Weekly posts written in both spanish and english
* [Scala @LibHunt](https://scala.libhunt.com) - A community driven list of useful Scala libraries, frameworks and software
* [List of Scala Online Courses](https://classpert.com/scala-programming) - A list of free and paid Scala online courses by Classpert, An online course search and comparison website
* [Scala Days Conferences](https://www.youtube.com/channel/UCOHg8YCiyMVRRxb3mJT_0Mg) - A youtube channel that provides full fledged videos, recorded at Scala Days Conferences
* [CA Art](https://github.com/makingthematrix/ca_art) - A small project aimed at learning Scala on intermediate level by experimenting with Cellular Automata
================================================
FILE: add-metadata.py
================================================
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Preparing to run it:
# brew install pipenv # or other installation method
# pipenv install
# generate a personal access token at https://github.com/settings/tokens
# Running it:
# GITHUB_TOKEN=xxxxxxx pipenv run python add-metadata.py < template.md > README.md
import fileinput
import os
import re
import sys
from datetime import datetime, timedelta
from github import Github
g = Github(os.environ['GITHUB_TOKEN'])
gh_repo_regex = re.compile('\[([\w\._-]+\/[\w\._-]+)\]\(@ghRepo\)')
def github_table_row(repo):
name = repo.name
if repo.stargazers_count >= 500:
name = f"**{name}**"
project_link = f"[{name}]({repo.html_url})"
stars_shield = f""
commit_shield = f""
return f"{project_link} | {repo.description} | {stars_shield} {commit_shield}"
def warn(msg):
print(f"Warn: {msg}", file=sys.stderr)
def retrieve_repo(name):
try:
repo = g.get_repo(name)
except Exception:
warn(f"Error occured while getting {name} repo")
raise
print('.', file=sys.stderr, end='', flush=True)
if is_stale(repo):
raise Exception("Repo is too old or inactive")
return repo
def is_stale(repo):
if repo.archived:
warn(f"Repo {repo.full_name} is archived")
return True
elif repo.pushed_at < datetime.utcnow() - timedelta(days=365):
warn(f"Repo {repo.full_name} has not been pushed to since {repo.pushed_at}")
return True
return False
def parse(line):
m = gh_repo_regex.search(line)
if m:
[repo_name] = m.groups()
try:
row = github_table_row(retrieve_repo(repo_name))
except Exception:
row = "skip"
return row
else:
return line.rstrip()
def run():
print('<!--- This file is automatically generated. Do not edit directly. -->')
for line in fileinput.input():
parsed = parse(line)
if parsed != "skip":
print(parsed)
run()
================================================
FILE: template.md
================================================
Awesome Scala [](https://github.com/sindresorhus/awesome)
=============
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](https://github.com/vinta/awesome-python). Other amazingly awesome lists can be found in the [awesome-awesomeness](https://github.com/bayandin/awesome-awesomeness) list.
Also awesome is [Scaladex](https://index.scala-lang.org/), 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
- [Learning Scala](#learning-scala)
- [Projects](#projects)
- [Android](#android)
- [Archive and Compression](#archive-and-compression)
- [Artificial Intelligence](#artificial-intelligence)
- [Authentication](#authentication)
- [Authorization](#authorization)
- [Big Data](#big-data)
- [Command Line Interfaces](#command-line-interfaces)
- [Cryptography](#cryptography)
- [CSV](#csv)
- [Data Binding and Validation](#data-binding-and-validation)
- [Database](#database)
- [DevOps](#devops)
- [Distributed Systems](#distributed-systems)
- [Extensions](#extensions)
- [Functional Reactive Programming](#functional-reactive-programming)
- [Geospatial](#geospatial)
- [Graphical User Interfaces](#graphical-user-interfaces)
- [HTTP](#http)
- [i18n](#i18n)
- [Image processing and image analysis](#image-processing-and-image-analysis)
- [JavaScript](#javascript)
- [JSON](#json)
- [Markdown](#markdown)
- [Metrics and Monitoring](#metrics-and-monitoring)
- [Misc](#misc)
- [Modularization and Dependency Injection](#modularization-and-dependency-injection)
- [Parsing](#parsing)
- [Reactive Web Frameworks](#reactive-web-frameworks)
- [Sbt plugins](#sbt-plugins)
- [Science and Data Analysis](#science-and-data-analysis)
- [Scheduling](#scheduling)
- [Semantic Web](#semantic-web)
- [Serialization](#serialization)
- [Templating](#templating)
- [Testing](#testing)
- [Tools](#tools)
- [Web Frameworks](#web-frameworks)
- [XML / HTML](#xml--html)
- [YAML](#yaml)
- [Learning Scala](#learning-scala)
- [Books](#books)
- [Exercises](#exercises)
- [Tutorials and courses](#tutorials-and-courses)
- [Commercial courses](#commercial-courses)
- [Community members' blogs](#community-members-blogs)
- [Company Blogs](#company-blogs)
- [Podcasts](#podcasts)
- [Contributing](#contributing)
### Archive and Compression
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [gonearewe/SevenZ4S](@ghRepo)
### Artificial Intelligence
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [cirg-up/cilib](@ghRepo)
### Database
*Database access libraries in Scala.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [innFactory/akka-persistence-gcp-datastore](@ghRepo)
* [playframework/anorm](@ghRepo)
* [mongodb/casbah](@ghRepo)
* [crobox/clickhouse-scala-client](@ghRepo)
* [couchbase/couchbase-jvm-clients](@ghRepo)
* [beloglazov/couchdb-scala](@ghRepo)
* [tpolecat/doobie](@ghRepo)
* [sksamuel/elastic4s](@ghRepo)
* [mingchuno/etcd4s](@ghRepo)
* [finagle/finagle-postgres](@ghRepo)
* [laserdisc-io/laserdisc](@ghRepo)
* [laserdisc-io/mysql-binlog-stream](@ghRepo)
* [longevityframework/longevity](@ghRepo)
* [outr/lucene4s](@ghRepo)
* [kostaskougios/mapperdao](@ghRepo)
* [outworkers/morpheus](@ghRepo)
* [neotypes/neotypes](@ghRepo)
* [outworkers/phantom](@ghRepo)
* [sksamuel/pulsar4s](@ghRepo)
* [getquill/quill](@ghRepo)
* [ReactiveCouchbase/ReactiveCouchbase-rs-core](@ghRepo)
* [ReactiveMongo/ReactiveMongo](@ghRepo)
* [etaty/rediscala](@ghRepo)
* [lucidsoftware/relate](@ghRepo)
* [salat/salat](@ghRepo)
* [sangria-graphql/sangria](@ghRepo)
* [aselab/scala-activerecord](@ghRepo)
* [lastland/scala-forklift](@ghRepo)
* [debasishg/scala-redis](@ghRepo)
* [wangzaixiang/scala-sql](@ghRepo)
* [outr/scalarelational](@ghRepo)
* [scalikejdbc/scalikejdbc](@ghRepo)
* [guardian/scanamo](@ghRepo)
* [Livestream/scredis](@ghRepo)
* [ing-bank/scruid](@ghRepo)
* [alexandru/shade](@ghRepo)
* [slick/slick](@ghRepo)
* [tminglei/slick-pg](@ghRepo)
* [sake92/squery](@ghRepo)
* [squeryl/squeryl](@ghRepo)
* [scalamolecule/molecule](@ghRepo)
* [zio/zio-redis](@ghRepo)
* [tpolecat/skunk](@ghRepo)
* [zero-deps/kvs](@ghRepo)
### Messaging
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [SpinGo/op-rabbit](@ghRepo)
### Graphical User Interfaces
*Libraries for creation of graphical user interfaces*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [scalafx/scalafx](@ghRepo)
### Web Frameworks
*Scala frameworks for web development.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [analogweb/analogweb-scala](@ghRepo)
* [mesosphere/chaos](@ghRepo)
* [com-lihaoyi/cask](@ghRepo)
* [tumblr/colossus](@ghRepo)
* [twitter/finatra](@ghRepo)
* [lift/framework](@ghRepo)
* [dvarelap/peregrine](@ghRepo)
* [playframework/playframework](@ghRepo)
* [splink/pagelets](@ghRepo)
* [nafg/reactive](@ghRepo)
* [japgolly/scalajs-react](@ghRepo)
* [scalatra/scalatra](@ghRepo)
* [sake92/sharaf](@ghRepo)
* [skinny-framework/skinny-framework](@ghRepo)
* [unfiltered/unfiltered](@ghRepo)
* [xitrum-framework/xitrum](@ghRepo)
* [outr/youi](@ghRepo)
### Reactive Web Frameworks
*Scala libraries for Reactive Web development*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [ThoughtWorksInc/Binding.scala](@ghRepo)
* [fomkin/korolev](@ghRepo)
* [UdashFramework/udash-core](@ghRepo)
* [vert-x3/vertx-lang-scala](@ghRepo)
### Data Binding and Validation
*Scala libraries for data binding and validation*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [wix/accord](@ghRepo)
* [yakivy/dupin](@ghRepo)
* [krzemin/octopus](@ghRepo)
* [splink/veto](@ghRepo)
* [jap-company/fields](@ghRepo)
### i18n
*Scala libraries for i18n.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [xitrum-framework/scala-xgettext](@ghRepo)
* [xitrum-framework/scaposer](@ghRepo)
### Authentication
*Libraries for implementing authentications schemes.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [softwaremill/akka-http-session](@ghRepo)
* [ticofab/aws-request-signer](@ghRepo)
* [zalando/OAuth2-mock-play](@ghRepo)
* [guardian/play-googleauth](@ghRepo)
* [pac4j/play-pac4j](@ghRepo)
* [t2v/play2-auth](@ghRepo)
* [nulab/scala-oauth2-provider](@ghRepo)
* [jaliss/securesocial](@ghRepo)
### Cryptography
*Cryptography and Encryption Libraries.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [ScorexProject/scrypto](@ghRepo)
* [jmcardon/tsec](@ghRepo)
* [blackdoor/jose](@ghRepo)
### Testing
*Libraries for code testing.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [bencherdev/bencher](@ghRepo)
* [agourlay/cornichon](@ghRepo)
* [gatling/gatling](@ghRepo)
* [monix/minitest](@ghRepo)
* [mockito/mockito-scala](@ghRepo)
* [scalameta/munit](@ghRepo)
* [rickynils/scalacheck](@ghRepo)
* [scalameter/scalameter](@ghRepo)
* [paulbutcher/ScalaMock](@ghRepo)
* [scalaprops/scalaprops](@ghRepo)
* [scalatest/scalatest](@ghRepo)
* [xitrum-framework/scalive](@ghRepo)
* [etorreborre/specs2](@ghRepo)
* [stryker-mutator/stryker4s](@ghRepo)
* [disneystreaming/weaver-test](@ghRepo)
* [testcontainers/testcontainers-scala](@ghRepo)
* [lihaoyi/utest](@ghRepo)
### JSON
*Libraries for work with json.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [argonaut-io/argonaut](@ghRepo)
* [sirthias/borer](@ghRepo)
* [travisbrown/circe](@ghRepo)
* [gnieh/diffson](@ghRepo)
* [FasterXML/jackson-module-scala](@ghRepo)
* [non/jawn](@ghRepo)
* [json4s/json4s](@ghRepo)
* [plokhotnyuk/jsoniter-scala](@ghRepo)
* [nestorpersist/json](@ghRepo)
* [nrktkt/ninny-json](@ghRepo)
* [playframework/play-json](@ghRepo)
* [fomkin/pushka](@ghRepo)
* [battermann/sbt-json](@ghRepo)
* [scala-jsonapi/scala-jsonapi](@ghRepo)
* [gzoller/ScalaJack](@ghRepo)
* [spray/spray-json](@ghRepo)
* [sake92/tupson](@ghRepo)
* [zio/zio-json](@ghRepo)
### YAML
*Libraries for work with YAML.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [jcazevedo/moultingyaml](@ghRepo)
### CSV
*Libraries for work with CSV.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [frugalmechanic/fm-flatfile](@ghRepo)
* [nrinaudo/kantan.csv](@ghRepo)
* [tototoshi/scala-csv](@ghRepo)
* [fingo/spata](@ghRepo)
### Serialization
*Libraries for serializing and deserializing data for storage or transport.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [malcolmgreaves/avro-codegen](@ghRepo)
* [sirthias/borer](@ghRepo)
* [sksamuel/avro4s](@ghRepo)
* [twitter/chill](@ghRepo)
* [msgpack/msgpack-scala](@ghRepo)
* [scalapb/ScalaPB](@ghRepo)
* [scodec/scodec](@ghRepo)
* [twitter/scrooge](@ghRepo)
* [lihaoyi/upickle](@ghRepo)
* [zero-deps/proto](@ghRepo)
### Science and Data Analysis
*Libraries for scientific computing, data analysis and numerical processing.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [twitter/algebird](@ghRepo)
* [axlelang/axle](@ghRepo)
* [intel-analytics/BigDL](@ghRepo)
* [scalanlp/breeze](@ghRepo)
* [Clustering4Ever/Clustering4Ever](@ghRepo)
* [picnicml/doddle-model](@ghRepo)
* [p2t2/figaro](@ghRepo)
* [to-ithaca/libra](@ghRepo)
* [anskarl/LoMRF](@ghRepo)
* [openmole/mgo](@ghRepo)
[MLLib](https://spark.apache.org/mllib/) | Machine Learning framework for Spark |
* [SciScala/NDScala](@ghRepo)
* [botkop/numsca](@ghRepo)
* [EmergentOrder/ONNX-Scala](@ghRepo)
* [openmole/openmole](@ghRepo)
* [vagmcs/Optimus](@ghRepo)
[OscaR](https://bitbucket.org/oscarlib/oscar/wiki/Home) | a Scala toolkit for solving Operations Research problems |
* [PoslavskySV/rings](@ghRepo)
* [haifengl/smile](@ghRepo)
* [andypetrella/spark-notebook](@ghRepo)
* [non/spire](@ghRepo)
* [garyKeorkunian/squants](@ghRepo)
* [mrdimosthenis/Synapses](@ghRepo)
* [eaplatanios/tensorflow_scala](@ghRepo)
* [apache/zeppelin](@ghRepo)
* [JohnSnowLabs/spark-nlp](@ghRepo)
* [HexagonNico/VecMatLib](@ghRepo)
### Big Data
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [BIDData/BIDMach](@ghRepo)
* [apache/flink](@ghRepo)
* [openmole/gridscale](@ghRepo)
* [apache/kafka](@ghRepo)
* [akka/reactive-kafka](@ghRepo)
* [twitter/scalding](@ghRepo)
* [indix/schemer](@ghRepo)
* [spotify/scio](@ghRepo)
[Scrunch](http://crunch.apache.org/scrunch.html) | A Scala wrapper for [Apache Crunch](http://crunch.apache.org/index.html) which provides a framework for writing, testing, and running MapReduce pipelines. |
* [apache/spark](@ghRepo)
* [indix/sparkplug](@ghRepo)
* [Stratio/sparkta](@ghRepo)
* [twitter/summingbird](@ghRepo)
* [vegas-viz/Vegas](@ghRepo)
* [galliaproject/gallia-core](@ghRepo)
* [TouK/nussknacker](@ghRepo)
### Command Line Interfaces
*Libraries for creation of command line interfaces*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [backuity/clist](@ghRepo)
* [bkirwi/decline](@ghRepo)
* [com-lihaoyi/mainargs](@ghRepo)
* [scallop/scallop](@ghRepo)
* [scopt/scopt](@ghRepo)
### Image processing and image analysis
*2D and 3D image processing and image analysis*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [poslegm/scala-phash](@ghRepo)
* [unibas-gravis/scalismo](@ghRepo)
* [sksamuel/scrimage](@ghRepo)
### Sound processing and music
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [mgdigital/Chromaprint.scala](@ghRepo)
### Functional Reactive Programming
*Event streams, signals, observables, etc.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [functional-streams-for-scala/fs2](@ghRepo)
* [travisbrown/iteratee](@ghRepo)
* [monix/monix](@ghRepo)
* [storm-enroute/reactors](@ghRepo)
* [reactor/reactor-scala-extensions](@ghRepo)
* [rescala-lang/REScala](@ghRepo)
* [ReactiveX/RxScala](@ghRepo)
* [lihaoyi/scala.rx](@ghRepo)
* [scalaz/scalaz-zio](@ghRepo)
* [Primetalk/SynapseGrid](@ghRepo)
* [vert-x3/vertx-lang-scala](@ghRepo)
* [wireapp/wire-signals](@ghRepo)
### Modularization and Dependency Injection
*Modularization of applications, dependency injection, etc.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [wvlet/airframe](@ghRepo)
* [7mind/izumi](@ghRepo)
* [adamw/macwire](@ghRepo)
* [codingwell/scala-guice](@ghRepo)
* [scaldi/scaldi](@ghRepo)
* [xitrum-framework/sclasner](@ghRepo)
* [dickwall/subcut](@ghRepo)
* [yakivy/jam](@ghRepo)
### Distributed Systems
*Libraries and frameworks for writing distributed applications.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [akka/akka](@ghRepo)
* [levkhomich/akka-tracing](@ghRepo)
* [annetteplatform/annette](@ghRepo)
* [stephenmcd/curiodb](@ghRepo)
* [twitter/finagle](@ghRepo)
* [xitrum-framework/glokka](@ghRepo)
* [lagom/lagom](@ghRepo)
* [parapet-io/parapet](@ghRepo)
* [yakivy/poppet](@ghRepo)
* [reactors-io/reactors](@ghRepo)
* [automorph-org/automorph](@ghRepo)
### Extensions
*Scala extensions.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [lihaoyi/Ammonite](@ghRepo)
* [pathikrit/better-files](@ghRepo)
* [tersesystems/blindsight](@ghRepo)
* [twitter/cassovary](@ghRepo)
* [typelevel/cats](@ghRepo)
* [scalalandio/chimney](@ghRepo)
* [opt-tech/chronoscala](@ghRepo)
* [ThoughtWorksInc/Dsl.scala](@ghRepo)
* [ThoughtWorksInc/each](@ghRepo)
* [atnos-org/eff](@ghRepo)
* [ThoughtWorksInc/enableIf.scala](@ghRepo)
* [lloydmeta/enumeratum](@ghRepo)
* [Thangiee/Freasy-Monad](@ghRepo)
* [ISCPIF/freedsl](@ghRepo)
* [frees-io/freestyle](@ghRepo)
* [scala-hamsters/hamsters](@ghRepo)
* [maxcellent/lamma](@ghRepo)
* [xerial/larray](@ghRepo)
* [Log4s/log4s](@ghRepo)
* [7mind/izumi](@ghRepo)
* [julien-truffaut/Monocle](@ghRepo)
* [nscala-time/nscala-time](@ghRepo)
* [adamw/quicklens](@ghRepo)
* [scala-records/scala-records](@ghRepo)
* [fthomas/refined](@ghRepo)
* [scala/async](@ghRepo)
* [scala-graph/scala-graph](@ghRepo)
* [lightbend/Scala-Logging](@ghRepo)
* [scalameta/scalameta](@ghRepo)
* [scalaz/scalaz](@ghRepo)
* [outr/scribe](@ghRepo)
* [milessabin/shapeless](@ghRepo)
* [mpilquist/simulacrum](@ghRepo)
* [epfldata/squid](@ghRepo)
* [pmwmedia/tinylog](@ghRepo)
* [twitter/util](@ghRepo)
### Misc
*Projects that don't fit into any specific category.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [aossie/Agora](@ghRepo) | Library of vote-counting algorithms for elections. |
* [lihaoyi/Ammonite](@ghRepo)
* [aws4s/aws4s](@ghRepo)
* [softwaremill/bootzooka](@ghRepo)
* [ACINQ/eclair](@ghRepo)
* [lihaoyi/fansi](@ghRepo)
* [ColOfAbRiX/figlet4s](@ghRepo)
* [laserdisc-io/fs2-aws](@ghRepo)
* [toknapp/google4s](@ghRepo)
* [EckerdCollege/google-api-scala](@ghRepo)
* [outr/mailgun4s](@ghRepo)
* [dvgica/managerial](@ghRepo)
* [outr/media4s](@ghRepo)
* [miniboxing/miniboxing-plugin](@ghRepo)
* [marianogappa/ostinato](@ghRepo)
* [iheartradio/play-swagger](@ghRepo)
* [lihaoyi/pprint](@ghRepo)
* [pureconfig/pureconfig](@ghRepo)
* [marconilanna/REPLesent](@ghRepo)
* [sirthias/scala-ssh](@ghRepo)
* [nbronson/scala-stm](@ghRepo)
* [aossie/Scavenger](@ghRepo) | An experimental automated theorem prover. |
* [allawala/service-chassis](@ghRepo)
* [sirthias/spliff](@ghRepo)
* [lambdaworks/scountries](@ghRepo)
* [lambdaworks/scurl-detector](@ghRepo)
* [aptusproject/aptus-core](@ghRepo)
### Android
*Scala libraries and wrappers for Android development.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [pfn/android-sdk-plugin](@ghRepo)
* [pocorall/scaloid](@ghRepo)
### HTTP
*Scala libraries and wrappers for HTTP clients.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [akka/akka-http](@ghRepo)
* [dispatch/reboot](@ghRepo)
* [finagle/finch](@ghRepo)
* [daviddenton/fintrospect](@ghRepo)
* [http4s/http4s](@ghRepo)
* [outr/jefe](@ghRepo)
* [criteo/lolhttp](@ghRepo)
* [lihaoyi/requests-scala](@ghRepo)
* [hmil/RosHTTP](@ghRepo)
* [scalaj/scalaj-http](@ghRepo)
* [eed3si9n/scalaxb](@ghRepo)
* [softwaremill/sttp](@ghRepo)
* [softwaremill/tapir](@ghRepo)
* [endpoints4s/endpoints4s](@ghRepo)
* [zero-deps/frontier](@ghRepo)
### Semantic Web
*Scala libraries for interactions with the Web of Data, and other RDF tools.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [banana-rdf/banana-rdf](@ghRepo)
* [phenoscape/scowl](@ghRepo)
### Metrics and Monitoring
*Scala libraries for gathering metrics and monitoring applications.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [erikvanoosten/metrics-scala](@ghRepo)
### Parsing
*Scala libraries for creating parsers.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [tpolecat/atto](@ghRepo)
* [lihaoyi/fastparse](@ghRepo)
* [sirthias/parboiled2](@ghRepo)
* [scala/scala-parser-combinators](@ghRepo)
* [typelevel/cats-parse](@ghRepo)
* [epfl-lara/scallion](@ghRepo)
### Sbt plugins
*Sbt plugins to make your life easier.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [oleg-py/better-monadic-for](@ghRepo)
* [coursier/coursier](@ghRepo)
* [scalameta/mdoc](@ghRepo)
* [ThoughtWorksInc/sbt-api-mappings](@ghRepo)
* [valydia/sbt-apidoc](@ghRepo)
* [sbt/sbt-assembly](@ghRepo)
* [sbt/sbt-buildinfo](@ghRepo)
* [olafurpg/sbt-ci-release](@ghRepo)
* [albuch/sbt-dependency-check](@ghRepo)
* [marcuslonnberg/sbt-docker](@ghRepo)
* [tkawachi/sbt-doctest](@ghRepo)
* [sbt/sbt-ghpages](@ghRepo)
* [sbt/sbt-groll](@ghRepo)
* [sbt/sbt-header](@ghRepo)
* [sake92/sbt-hepek](@ghRepo)
* [Jetbrains/sbt-ide-settings](@ghRepo)
* [ktoso/sbt-jmh](@ghRepo)
* [47deg/sbt-microsites](@ghRepo)
* [lightbend/mima](@ghRepo)
* [sbt/sbt-native-packager](@ghRepo)
* [xerial/sbt-pack](@ghRepo)
* [sbt/sbt-pgp](@ghRepo)
* [sbt/sbt-release](@ghRepo)
* [spray/sbt-revolver](@ghRepo)
* [ThoughtWorksInc/sbt-scala-js-map](@ghRepo)
* [scalameta/sbt-scalafmt](@ghRepo)
* [scoverage/sbt-scoverage](@ghRepo)
* [sbt/sbt-site](@ghRepo)
* [xerial/sbt-sonatype](@ghRepo)
* [sbt/sbt-unidoc](@ghRepo)
* [rtimush/sbt-updates](@ghRepo)
* [typesafehub/sbteclipse](@ghRepo)
* [softwaremill/scala-clippy](@ghRepo)
* [tek/splain](@ghRepo)
* [tpolecat/tut](@ghRepo)
* [earldouglas/xsbt-web-plugin](@ghRepo)
* [shmishleniy/sbt-deploy-ssh](@ghRepo)
* [sbt/sbt-git](@ghRepo)
* [zero-deps/sbt-git](@ghRepo)
### XML / HTML
*XML and HTML generation and processing*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [ruippeixotog/scala-scraper](@ghRepo)
* [ScalaWilliam/xs4s](@ghRepo)
* [valentiay/phobos](@ghRepo)
### Markdown
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [planet42/Laika](@ghRepo)
### JavaScript
*JavaScript generation and interop libraries.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [scalafiddle/scalafiddle-editor](@ghRepo)
* [scala-js/scala-js](@ghRepo)
### Scheduling
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [enragedginger/akka-quartz-scheduler](@ghRepo)
### Templating
*Web templating engines.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [zalando/beard](@ghRepo)
* [lihaoyi/scalatags](@ghRepo)
* [scalate/scalate](@ghRepo)
* [playframework/twirl](@ghRepo)
* [sake92/hepek](@ghRepo)
### Tools
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [JohnReedLOL/scala-trace-debug](@ghRepo)
* [scalacenter/bloop](@ghRepo)
* [codacy/codacy-scalameta](@ghRepo)
* [coursier/coursier](@ghRepo)
* [marianobarrios/dregex](@ghRepo)
* [Sizmek/fast-string-interpolator](@ghRepo)
* [Atry/fastring](@ghRepo)
* [gitbucket/gitbucket](@ghRepo)
* [foundweekends/giter8](@ghRepo)
* [scalameta/metals](@ghRepo)
* [lihaoyi/mill](@ghRepo)
* [JohnReedLOL/pos](@ghRepo)
* [sbt/sbt](@ghRepo)
* [scalacenter/scalafix](@ghRepo)
[Scalafmt](https://scalameta.org/scalafmt/) | Code formatter for Scala |
* [scala-ide/scalariform](@ghRepo)
* [scalastyle/scalastyle](@ghRepo)
* [lihaoyi/Scalatex](@ghRepo)
* [sksamuel/scapegoat](@ghRepo)
* [puffnfresh/wartremover](@ghRepo)
* [sake92/stone](@ghRepo)
* [sake92/scalajs-router](@ghRepo)
* [BotTech/scala2plantuml](@ghRepo)
### Geospatial
*Libraries to aid with geospatial calculations and artifacts.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [locationtech/geotrellis](@ghRepo)
* [angelcervera/osm4scala](@ghRepo)
* [Sizmek/rtree2d](@ghRepo)
* [locationtech/sfcurve](@ghRepo)
* [azavea/stac4s](@ghRepo) - types and basic functionality for working with SpatioTemporal Asset Catalogs
* [azavea/franklin](@ghRepo) - A SpatioTemporal Asset Catalog API and OGC API Features compliant web service
### Devops
*DevOps related tools and libraries.*
Name | Description | GitHub Activity
---- | ----------- | ---------------
* [hagay3/skuber](@ghRepo)
# Learning Scala
*Nice books, blogs and other resources to learn Scala*
## Books
* [Essential Scala](https://underscore.io/books/essential-scala/) by Noel Welsh and Dave Gurnell - Essential Scala is aimed at experienced developers who are encountering Scala for the first time.
* [Functional and Reactive Domain Modeling](https://www.manning.com/books/functional-and-reactive-domain-modeling) by Debasish Ghosh
* [Functional Programming for Mortals](https://leanpub.com/fpmortals/read) by Sam Halliday
* [Functional Programming in Scala](https://www.manning.com/books/functional-programming-in-scala) by Paul Chiusano and Runar Bjarnason
* [Functional Programming, Simplified (Scala edition)](https://alvinalexander.com/scala/fp-book/learning-functional-programming-in-scala/) by Alvin Alexander
* [Get Programming with Scala](https://www.manning.com/books/get-programming-with-scala) by Daniela Sfregola - Tutorial-driven introduction to Scala
* [Practical FP in Scala: A hands-on approach](https://leanpub.com/pfp-scala) by Gabriel Volpe
* [Programming in Scala](https://www.artima.com/shop/programming_in_scala_4ed) by Martin Odersky, Lex Spoon, and Bill Venners
* [Pure functional HTTP APIs in Scala](https://leanpub.com/pfhais) by Jens Grassel
* [Reactive Programming with Scala and Akka](https://www.amazon.com/Reactive-Programming-Scala-Akka/dp/1783984341) - Use the concepts of reactive programming to build distributed systems running on multiple nodes
* [Scala Cookbook](http://scalacookbook.com) by Alvin Alexander
* [Scala for the Impatient](https://horstmann.com/scala/) by Cay Horstmann - Covers most Scala features with short and easy to understand explainations.
* [Scala With Cats](https://underscore.io/books/scala-with-cats/) by Noel Welsh and Dave Gurnell - 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](https://underscore.io/books/shapeless-guide/) by Dave Gurnell
* [Zionomicon](https://www.zionomicon.com) by John A. De Goes, Adam Fraser - Master the dark art of creating scalable, type-safe, concurrent apps with ZIO
## Exercises
* [S-99](http://aperiodic.net/phil/scala/s-99) - Ninety-Nine Scala Problems
* [Scala Exercises](http://scala-exercises.47deg.com/) - 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](https://exercism.org/tracks/scala/exercises) - Community-driven Scala exercises.
* [Learn-by-doing functional programming course on Scala](https://github.com/dehun/learn-fp/) - Covers type classes, functors, applicatives, monads, monad transformers, free monad
## Tutorials and courses
* [A Tour of Scala](http://docs.scala-lang.org/tour/tour-of-scala.html) - Bite-sized introductions to some of the core language concepts.
* [Functional Programming in Scala](https://www.coursera.org/specializations/scala) - Coursera Specialization (5 courses) created by Martin Odersky et al. at the EPFL (Ecole polytechnique fédérale de Lausanne).
* Resources by [Dr. Mark Lewis](http://www.cs.trinity.edu/~mlewis/) >> [Website](http://www.programmingusingscala.net/) | [Youtube Playlists](https://www.youtube.com/user/DrMarkCLewis/playlists)
* **[Demos and Examples in Scala (Chinese) ★ 923 ⧗ 2](https://github.com/jacksu/utils4s)** - repo of sample Scala library usage, written in Chinese
* [Introduction to programming with dependent types in Scala](https://stepik.org/course/2294/) - Video Course by Dmytro Mitin
* [Scala Collections Cookbook](http://colobu.com/ScalaCollectionsCookbook/) - Scala collections introduction. written in Chinese.
* [Free Scala Courses](https://skillcombo.com/topic/scala/free/) - A curated list of free Scala courses.
* [Clean Architecture Example](https://github.com/SaeidDadkhah/clean-arch-example) - A step-by-step guide to develop an application using Clean Architecture in Scala.
## Commercial courses
* [Foundations of Functional Programming in Scala](https://www.fp-tower.com/courses/foundations) - a professional video course with exercises covering covers functional principles, custom IO (effects) and functional design.
* [Scala Algorithms](https://www.scala-algorithms.com/) - 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
* http://lihaoyi.com
* http://warski.org/blog
* https://degoes.net/articles
* http://eed3si9n.com/category/tags/scala
* https://danielwestheide.com/tags/scala
* https://kubuszok.com/tags/#scala
* http://debasishg.blogspot.com
* http://appliedscala.com/blog
* http://blog.higher-order.com
* http://ktoso.github.io/scala-types-of-types
* http://scalaprof.blogspot.com
* http://torre.me.uk/docs/scala
* https://alvinalexander.com
* https://blog.bruchez.name/search/label/scala
* https://github.com/lemastero/scala_typeclassopedia
* https://pchiusano.github.io
* https://beyondthelines.net
* https://manuel.bernhardt.io/blog
## Company Blogs
* [Functional Works / Learn](https://functional.works-hub.com/learn/) - Quality resources maintained by functional works
* http://allaboutscala.com/
* http://enear.github.io/
* https://blog.knoldus.com/tag/scala/
* https://blog.scalac.io/tags/Scala/
* https://blog.softwaremill.com/tagged/scala
* https://medium.com/disney-streaming/tagged/thisweekinscala
* https://www.codacy.com/blog/
* [Scala Times](https://scalatimes.com/) - Weekly newsletter about scala
* [47 Degrees](https://www.47deg.com/blog/) - Functional Programming news, updates, and more.
## Podcasts
* [The Scala Logs](https://twitter.com/thescalalogs) - Interviewing developers, open source contributors, subject matter experts, and the like to talk about FP, Scala, open source, and their interests.
* [Scala Love](https://scala.love/) - Podcast about the Scala Programming Language and its community
* [CoRecursive Interviews](https://corecursive.com/) - In-depth Interviews with software developers, often on the subject of scala libraries and functional programming.
* [Scala for Fun & Profit](https://podcasters.spotify.com/pod/show/julien-truffaut) - Interviewing Scala users and companies.
## Communities
* [Scala Ukraine](https://t.me/scala_ukraine) - Telegram chat of Ukrainian Scala Community
## Misc.
* [Programming Community Curated Resources for Learning Scala](https://hackr.io/tutorials/learn-scala)
* [Scalera Blog](http://www.scalera.es) - Blog about Scala language and its environment (howto's, good practices, tips,...). Weekly posts written in both spanish and english
* [Scala @LibHunt](https://scala.libhunt.com) - A community driven list of useful Scala libraries, frameworks and software
* [List of Scala Online Courses](https://classpert.com/scala-programming) - A list of free and paid Scala online courses by Classpert, An online course search and comparison website
* [Scala Days Conferences](https://www.youtube.com/channel/UCOHg8YCiyMVRRxb3mJT_0Mg) - A youtube channel that provides full fledged videos, recorded at Scala Days Conferences
* [CA Art](https://github.com/makingthematrix/ca_art) - A small project aimed at learning Scala on intermediate level by experimenting with Cellular Automata
gitextract_jna3y95u/ ├── .github/ │ └── workflows/ │ └── build-readme.yml ├── .gitignore ├── .python-version ├── LICENSE ├── Pipfile ├── README.md ├── add-metadata.py └── template.md
SYMBOL INDEX (6 symbols across 1 files) FILE: add-metadata.py function github_table_row (line 24) | def github_table_row(repo): function warn (line 36) | def warn(msg): function retrieve_repo (line 40) | def retrieve_repo(name): function is_stale (line 55) | def is_stale(repo): function parse (line 66) | def parse(line): function run (line 79) | def run():
Condensed preview — 8 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (137K chars).
[
{
"path": ".github/workflows/build-readme.yml",
"chars": 589,
"preview": "name: Build and push README to master\n\non:\n push:\n branches: master\n\njobs:\n build:\n runs-on: ubuntu-latest\n s"
},
{
"path": ".gitignore",
"chars": 237,
"preview": "*.class\n*.log\n.DS_Store\n\n# sbt specific\n.cache/\n.history/\n.lib/\ndist/*\ntarget/\nlib_managed/\nsrc_managed/\nproject/boot/\np"
},
{
"path": ".python-version",
"chars": 6,
"preview": "3.8.2\n"
},
{
"path": "LICENSE",
"chars": 11323,
"preview": "Apache License\n Version 2.0, January 2004\n http://www.apache.org/licens"
},
{
"path": "Pipfile",
"chars": 153,
"preview": "[[source]]\nname = \"pypi\"\nurl = \"https://pypi.org/simple\"\nverify_ssl = true\n\n[dev-packages]\n\n[packages]\npygithub = \"*\"\n\n["
},
{
"path": "README.md",
"chars": 91239,
"preview": "<!--- This file is automatically generated. Do not edit directly. -->\nAwesome Scala [. The extraction includes 8 files (131.7 KB), approximately 37.0k tokens, and a symbol index with 6 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.