新手上路 7小时前
主楼
来源:https://github.com/lauris/awesome-scala

这是一份面向 Scala 开发者的精选资源清单,覆盖 Scala 库、Web 框架、数据库、测试、构建工具、DevOps、大数据、学习资料、书籍、课程、博客、播客与社区入口。

Table of Contents / 数据库

  • akka-persistence-gcp-datastore - akka-persistence-gcp-datastore 是 akka-persistence 的日志和快照存储插件,在数据存储模式下使用 google cloud firestore。
  • anorm - Anorm 数据库。
  • clickhouse-scala-client - 支持反应流的 Clickhouse Scala 客户端。
  • couchbase-jvm-clients - 适用于 JVM 客户端的 Couchbase Monorepo:Java、Scala、io-core...。
  • doobie - Scala 的功能 JDBC 层。
  • elastic4s - 🔍 Elasticsearch Scala 客户端 - 反应式、非阻塞、类型安全、HTTP 客户端。
  • etcd4s - Scala etcd 客户端实现 V3 API。
  • laserdisc - 一个面向未来的 Fs2 原生纯 FP Redis 客户端。
  • mysql-binlog-stream - 没有任何。
  • neotypes - 适用于 neo4j 的 Scala 轻量级、类型安全、异步驱动程序。
  • pulsar4s - Apache Pulsar 的惯用、类型安全和反应式 Scala 客户端。
  • zio-quill - Scala 的编译时语言集成查询。
  • ReactiveMongo - :leaves:Scala 的非阻塞、反应式 MongoDB 驱动程序。
  • rediscala - 适用于 Scala 的非阻塞、反应式 Redis 驱动程序(支持 Sentinel)。
  • relate - Scala 中的高性能数据库访问。
  • sangria - Scala GraphQL 实现。
  • scala-forklift - 适用于 Slick、Git 等的类型安全数据迁移工具。
  • scalarelational - 用于定义、修改和查询 SQL 数据库的类型安全框架。
  • scalikejdbc - 为 Scala 开发人员提供的基于 SQL 的整洁数据库访问库。该库自然地包装了 JDBC API 并为您提供易于使用的 API。
  • scanamo - Scala 的 DynamoDB 访问更简单。
  • slick - Slick(Scala语言集成连接套件)是Scala的现代数据库查询和访问库。
  • slick-pg - PostgreSQL 的流畅扩展。
  • squery - Scala 3 中的简单 SQL 查询。
  • squeryl - 用于以最少的冗长和最大的类型安全性与数据库对话的 Scala DSL。
  • molecule - Molecule 将自定义 Scala 代码转换为多个数据库的数据库查询。
  • zio-redis - 基于ZIO的redis客户端。
  • skunk - skunk 相关资源,聚焦编译器、解释器、运行时或编程语言实现,适合学习、收藏和实践。
  • kvs - 高度可用的分布式强最终一致和顺序一致存储,具有提要、排序和搜索功能。

Table of Contents / 图形界面

  • scalafx - ScalaFX 简化了 Scala 中基于 JavaFX 的用户界面的创建。

Table of Contents / Web 框架

  • analogweb-scala - 适用于 Scala 的小型高性能 HTTP 服务器。
  • cask - Cask: a Scala HTTP micro-framework. Cask 可以轻松使用 Scala 设置网站、后端服务器或 REST API。
  • finatra - 基于 TwitterServer 和 Finagle 构建的快速、可测试的 Scala 服务。
  • framework - 升降机框架。
  • playframework - 社区维护 Java 和 Scala 的高速 Web 框架。
  • scalajs-react - Facebook 在 Scala.JS 上的 React。
  • scalatra - Tiny Scala 高性能异步 Web 框架,灵感来自 Sinatra。
  • sharaf - 简约的 Scala 3 Web 框架。
  • unfiltered - 用于在 Scala 中处理 HTTP 请求的工具包。
  • youi - 使用 Scala 和 Scala.js 进行 Web、移动和桌面的下一代用户界面和应用程序开发。

Table of Contents / 响应式 Web 框架

Table of Contents / 数据绑定与校验

  • dupin - 最小、惯用、可定制的验证 Scala 库。
  • octopus - 用于无样板验证的 Scala 库。

Table of Contents / 国际化

  • scaposer - Scala 的 GNU Gettext。po 文件加载器。

Table of Contents / 认证

  • play-googleauth - 用于针对 Google 进行身份验证的简单播放模块。
  • play-pac4j - Java 和 Scala 中的 Play 框架 2 的安全库:OAuth、CAS、SAML、OpenID Connect、LDAP、JWT..。
  • scala-oauth2-provider - 用 Scala 编写的 OAuth 2.0 服务器端实现。

Table of Contents / 密码学

  • scrypto - Scala 的加密原语。
  • jose - Scala 的可扩展 JOSE 库。

Table of Contents / 测试

  • bencher - 🐰 Bencher - 持续基准测试。
  • cornichon - Scala 中用于 HTTP JSON API 的测试工具。
  • gatling - 现代负载测试作为代码。
  • minitest - Scala 和 Scala.js 的超轻量级测试库。
  • mockito-scala - 用于 Scala 语言的 Mockito。
  • munit - 具有可操作错误和可扩展 API 的 Scala 测试库。
  • scalacheck - Scala 基于属性的测试。
  • ScalaMock - 原生 Scala 模拟框架。
  • scalaprops - Scala 基于属性的测试库。
  • scalatest - 面向 Scala 和 Java 开发人员的测试工具。
  • specs2 - Scala 软件规范。
  • stryker4s - Scala 的突变测试。
  • weaver-test - 并行运行所有内容的测试框架。
  • testcontainers-scala - 用于在 scala 中进行测试的 Docker 容器。
  • utest - 一个简单的 Scala 测试框架。

Table of Contents / JSON

  • argonaut - scala 中的纯函数式 JSON 解析器和库。
  • borer - Scala 中的高效 CBOR 和 JSON(反)序列化。
  • circe - Scala 的另一个 JSON 库。
  • diffson - Json 的 scala diff/patch 库。
  • jackson-module-scala - Jackson 的附加模块 (https://github.com/FasterXML/jackson) 支持 Scala 特定的数据类型。
  • jawn - Jaawn 用于解析 jay-sawn (JSON)。
  • json4s - JSON库。
  • jsoniter-scala - Scala 宏用于编译时生成安全且超快速的 JSON 编解码器 + circe booster。
  • ninny-json - JSON 类型类知道 null 和缺席字段之间的区别。
  • play-json - Play JSON 库。
  • ScalaJack - Scala 的快速 JSON 解析器/生成器。
  • spray-json - Scala 中轻量级、干净且简单的 JSON 实现。
  • tupson - 用于编写和读取 JSON 的愚蠢简单的 Scala 3 库。
  • zio-json - 快速、安全的 JSON 库与 ZIO 紧密集成。

Table of Contents / CSV

  • kantan.csv - Scala 的 CSV 处理库。
  • scala-csv - Scala 的 CSV 读取器/写入器。
  • spata - 适用于 Scala 的功能性、基于流的 CSV 处理器。

Table of Contents / 序列化

  • borer - Scala 中的高效 CBOR 和 JSON(反)序列化。
  • avro4s - Scala 的 Avro 模式生成和序列化/反序列化。
  • chill - Kryo 序列化库的 Scala 扩展。
  • ScalaPB - Scala 的协议缓冲区编译器。
  • scodec - 用于处理二进制数据的 Scala 组合器库。
  • scrooge - Thrift 解析器/生成器。
  • upickle - uPickle:一个简单、快速、无依赖的 Scala JSON 和二进制 (MessagePack) 序列化库。
  • proto - 基于带有宏的 Protocol Buffers 的 Scala 2/3 轻量级快速序列化库。

Table of Contents / 科学与数据分析

  • algebird - Scala 的抽象代数。
  • ipex-llm - 加速 Intel XPU 上的本地 LLM 推理和微调(LLaMA、Mistral、ChatGLM、Qwen、Baichuan、Mixtral、Gemma、Phi、MiniCPM 等)(例如,具有 iGPU 和 NPU 的本地 PC、Arc、Flex 和 Max 等独立 GPU);与 llama.cpp、Ollama、HuggingFace、LangChain、LlamaIndex、GraphRAG、DeepSpeed、vLLM、FastChat、Axolotl 等无缝集成。
  • breeze - Breeze 是/曾经是 Scala 的数值处理库。
  • doddle-model - :cake: doddle-model: Scala 中的机器学习。
  • libra - 基于依赖类型的维度分析库。
  • LoMRF - LoMRF 是马尔可夫逻辑网络的开源实现。
  • mgo - 用于多目标优化的纯函数遗传算法。
  • MLLib - Spark 机器学习框架。
  • numsca - numsca 是 scala 的 numpy。
  • onnx-scala - ONNX(开放神经网络交换)API 和后端,用于 Scala 3 中的类型化、功能性深度学习和经典机器学习。
  • openmole - 使用高吞吐量计算探索仿真模型的工作流引擎。
  • Optimus - Optimus 是 Scala 的数学编程库。
  • OscaR - 用于解决运筹学问题的 Scala 工具包。
  • rings - Rings:用于多项式环的高效 JVM 库。
  • smile - 统计机器智能和学习引擎。
  • spire - Scala 的强大新数字类型和数字抽象。
  • squants - 用于数量、测量单位和尺寸分析的 Scala API。
  • zeppelin - 基于 Web 的笔记本,支持使用 SQL、Scala 等进行数据驱动、交互式数据分析和协作文档。
  • spark-nlp - 最先进的自然语言处理。
  • VecMatLib - 开源 Scala 库,提供向量和矩阵的数据结构。

Table of Contents / 大数据

  • flink - 阿帕奇弗林克。
  • gridscale - 用于访问各种文件、批处理系统、作业调度程序和网格中间件的 Scala 库。
  • kafka - Apache Kafka 的镜像。
  • alpakka-kafka - Alpakka Kafka 连接器 - Alpakka 是一个基于 Reactive Streams 和 Akka 的 Java 和 Scala 反应式企业集成库。
  • scio - 适用于 Apache Beam 和 Google Cloud Dataflow 的 Scala API。
  • Scrunch - Apache Crunch 的 Scala 包装器,提供用于编写​​、测试和运行 MapReduce 管道的框架。
  • spark - Apache Spark - 用于大规模数据处理的统一分析引擎。
  • gallia-core - 用于数据转换的模式感知 Scala 库。
  • nussknacker - 用于对实时数据执行自动化操作的低代码工具。(Stars: 0)

Table of Contents / 命令行界面

  • decline - Scala 的可组合命令行解析器。
  • mainargs - 一个小型、方便、无依赖的库,用于 Scala 中的命令行参数解析。
  • scallop - 一个简单的 Scala CLI 解析库。
  • scopt - Scala 的命令行选项解析。

Table of Contents / 图像处理与分析

  • scalismo - 可扩展的图像分析和形​​状建模。
  • scrimage - JVM - Java、Kotlin、Scala 图像处理库。

Table of Contents / 函数式响应式编程

  • fs2 - Scala 的组合式流 I/O 库。
  • iteratee - 猫的迭代器。
  • monix - Scala 和 Scala.js 的异步、反应式编程。
  • REScala - REScala - 嵌入到 OO 和 FP 程序中的分布式和反应式编程。
  • zio - ZIO——一个类型安全、可组合的库,用于 Scala 中的异步和并发编程。
  • vertx-lang-scala - Vert.x for Scala。

Table of Contents / 模块化与依赖注入

  • airframe - Scala 的基本构建块。
  • izumi - Scala 工具链的以生产力为导向的轻量级精美内容集合。
  • macwire - 零成本、编译时、类型安全的依赖注入库。
  • scaldi - 轻量级 Scala 依赖注入库。
  • jam - 极其简单的 DI Scala 库。

Table of Contents / 分布式系统

  • akka - 在 JVM 上构建高度并发、分布式和弹性的消息驱动应用程序。
  • annette - 用于构建分布式、可扩展的企业级业务应用程序的平台。
  • finagle - 容错、协议无关的 RPC 系统。
  • poppet - 最小的、类型安全的 RPC Scala 库。
  • automorph - Scala 的 RPC 客户端和服务器库。

Table of Contents / 扩展

  • Ammonite - Scala 脚本。
  • better-files - 简单、安全且直观的 Scala I/O。
  • blindsight - Blindsight 是一个 Scala 日志记录 API,具有基于 DSL 的结构化日志记录、流畅日志记录、语义日志记录、流日志记录和上下文感知日志记录。
  • cats - 用于函数式编程的轻量级、模块化和可扩展的库。
  • chimney - Scala 库,用于无样板、类型安全的数据转换。
  • chronoscala - nscala_time 的 JSR-310 端口。
  • Dsl.scala - 在 Scala 中创建嵌入式领域特定语言的框架。
  • each - 将本机命令式语法转换为 scalaz 的单子表达式的宏库。
  • eff - 猫的 Eff monad - https://atnos-org.github.io/eff
  • enableIf.scala - 一个在编译时切换 Scala 代码的库,就像 C/C++ 中的 #if。
  • enumeratum - Scala 的类型安全、无反射、强大的枚举实现,具有详尽的模式匹配警告和有用的集成。
  • log4s - Scala 的高性能 SLF4J 包装器。
  • izumi - Scala 工具链的以生产力为导向的轻量级精美内容集合。
  • Monocle - Scala 光学库。
  • nscala-time - 基于 scala-time 的 Joda Time 的新 Scala 包装器。
  • quicklens - 修改深度嵌套的案例类字段。
  • refined - Scala 的细化类型。
  • scala-async - Scala 的异步编程工具。
  • scala-graph - Graph for Scala 旨在提供无缝融入 Scala 集合库的基本图形功能。与 scala.collection 的知名成员一样,Graph for Scala 是一个内存图形库,旨在以用户友好的方式编辑和遍历图形、查找循环等。
  • scala-logging - 用于 Scala 包装 SLF4J 的方便且高性能的日志记录库。
  • scalameta - 用于读取、分析、转换和生成 Scala 程序的库。
  • scalaz - Scala 中的原则性函数式编程。
  • scribe - 世界上最快的日志库。使用 Scala 从头开始​​构建并可通过编程进行配置。
  • shapeless - Scala 的通用编程。
  • simulacrum - Scala 中类型类的一流语法支持。
  • squid - Squid – Scala 的类型安全元编程和编译框架。
  • tinylog - tinylog 是一个适用于 Java、Kotlin、Scala 和 Android 的轻量级日志框架。
  • util - 来自 Twitter 的精彩可重用代码。

Table of Contents / 杂项

  • Ammonite - Scala 脚本。
  • bootzooka - 简单的项目快速开始开发基于Scala的微服务或Web应用程序,无需编写登录、用户注册等。
  • eclair - 闪电网络的 Scala 实现。
  • fansi - 用于操作 Fancy Ansi 彩色字符串的 Scala/Scala.js 库。
  • fs2-aws - 用于与 AWS 交互的 fs2 实用程序。
  • mailgun4s - Scala 中的 Mailgun API 实现。
  • managerial - 用于单一管理资源的零依赖 Scala 库。
  • media4s - Scala 命令行包装器,围绕 ffmpeg、ffprobe、ImageMagick 和其他与媒体相关的工具。
  • play-swagger - 用于 Play 框架的 Swagger 规范生成器。
  • PPrint - 在 Scala 中漂亮打印值、类型和类型签名。
  • pureconfig - 用于加载配置文件的无样板库。
  • service-chassis - 一个 Scala 机箱,可以快速启动您的应用程序和服务。
  • spliff - Scala 中的高效差异。
  • scountries - Scala 库,提供国家/地区 ISO 3166 代码及其细分的枚举。
  • scurl-detector - 从文本中检测并提取 URL 的 Scala 库。
  • aptus-core - 旨在简化 Scala 编码体验的实用程序库。

Table of Contents / Android

  • scaloid - Scaloid 使您的 Android 代码易于理解和维护。

Table of Contents / HTTP

  • akka-http - Akka 的流优先 HTTP 服务器/模块。
  • reboot - Java AsyncHttpClient 的 Scala 包装器。
  • finch - 用于构建 Finagle HTTP 服务的 Scala 组合器库。
  • http4s - 一个最小的、惯用的 HTTP 的 Scala 接口。
  • lolhttp - Scala 的 HTTP 服务器和客户端库。
  • requests-scala - 流行的 Python Requests HTTP 客户端的 Scala 端口:灵活、直观且易于使用。
  • scalaxb - scalaxb 是 Scala 的 XML 数据绑定工具。
  • sttp - 您一直想要的 Scala HTTP 客户端!
  • tapir - 自文档 API 的快速开发。
  • endpoints4s - 描述 Scala 中的 HTTP 端点并派生客户端、服务器和文档。
  • frontier - 使用 ZIO 构建的轻量级 HTTP/WebSocket 服务器。

Table of Contents / 语义 Web

  • scowl - 用于使用 OWL API 进行编程的 Scala DSL。

Table of Contents / 指标与监控

Table of Contents / 解析

  • atto - 友好的小解析器。
  • fastparse - 在 Scala 中快速编写快速解析器。
  • parboiled2 - 适用于 Scala 2.10+ 的基于宏的 PEG 解析器生成器。
  • scala-parser-combinators - Scala 的简单的基于组合器的解析。以前是 Scala 标准库的一部分,现在是一个单独的社区维护的模块。
  • cats-parse - 猫生态系统的解析库。

Table of Contents / SBT 插件

  • better-monadic-for - 在没有隐式 withFilters 的情况下对 scala 进行脱糖处理。
  • coursier - 纯 Scala 工件获取。
  • mdoc - Scala 的类型检查 Markdown 文档。
  • sbt-api-mappings - 一个为常见 Scala 库填充 apiMappings 的 Sbt 插件。
  • sbt-assembly - 部署 uber-JAR。重新启动进程。 (科达黑尔港/Assembly-SBT)。
  • sbt-buildinfo - 我知道这一点是因为 build.sbt 知道这一点。
  • sbt-ci-release - sbt 插件可自动从 GitHub Actions 发布 Sonatype。
  • sbt-dependency-check - 用于 OWASP DependencyCheck 的 SBT 插件。监控您的依赖项并报告是否存在任何公开已知的漏洞(例如 CVE)。 :彩虹:。
  • sbt-docker - 直接从 sbt 创建 Docker 镜像。
  • sbt-doctest - Scala 文档测试。
  • sbt-ghpages - sbt 项目的 git、site 和 ghpages 支持。
  • sbt-header - sbt-header 是一个用于创建文件头的 sbt 插件,例如版权标头。
  • sbt-hepek - 用于将 Scala 对象渲染到文件的 Sbt 插件。还有更多!
  • sbt-ide-settings - 用于调整各种 IDE 设置的 SBT 插件。
  • sbt-jmh - “不要相信任何人,把一切都放在板凳上。” - JMH(Java Microbenchmark Harness)的 sbt 插件。
  • sbt-microsites - 一个 sbt 插件,可以为您的项目创建很棒的微型网站。
  • mima - Scala 中捕获二进制不兼容性的工具。
  • sbt-native-packager - sbt 原生打包器。
  • sbt-pack - 用于创建可分发 Scala 包的 sbt 插件。
  • sbt-pgp - sbt 的 PGP 插件。
  • sbt-release - sbt 的发布插件。
  • sbt-scala-js-map - 一个 Sbt 插件,用于为 Github 上托管的 Scala.js 项目配置源映射。
  • sbt-scalafmt - Scalafmt 的 sbt 插件。
  • sbt-scoverage - 用于 scoverage 的 sbt 插件。
  • sbt-site - sbt 网站生成。
  • sbt-sonatype - 一个用于将 Scala/Java 项目发布到 Maven 中心的 sbt 插件。
  • sbt-unidoc - sbt 插件,用于跨多个子项目创建统一的 Scaladoc 或 Javadoc API 文档。
  • sbt-updates - sbt 插件,可以检查 Maven 和 Ivy 存储库的依赖更新。
  • sbt-eclipse - 用于 sbt 创建 Eclipse 项目定义的插件。
  • splain - scala 更好的隐式错误。
  • xsbt-web-plugin - Servlet 对 sbt 的支持。
  • sbt-git - sbt 的 git 插件。

Table of Contents / XML / HTML

  • scala-scraper - 用于从 HTML 页面抓取内容的 Scala 库。
  • xs4s - Scala 的 XML Streaming,包括 FS2/cats 支持。
  • phobos - 适用于 Scala 的高效且富有表现力的 XML 数据绑定库。

Table of Contents / Markdown

  • Laika - 适用于 sbt、Scala 和 Scala.js 的网站和电子书生成器以及可定制文本标记转换器。

Table of Contents / JavaScript

  • scala-js - Scala.js,Scala 到 JavaScript 编译器。

Table of Contents / 调度

Table of Contents / 模板

  • scalatags - ScalaTags 是 Scala 的一个小型 XML/HTML 构建库。
  • scalate - Scalate 是一个基于 Scala 的模板引擎,支持 HAML、Mustache 和 JSP、Erb 和 Velocity 样式语法。
  • twirl - Twirl 是 Play 的默认模板引擎。
  • hepek - 纯 Scala 中的类型安全 HTML 模板和静态站点生成器。

Table of Contents / 工具

  • bloop - Bloop 是一个构建服务器和 CLI 工具,可从任何编辑器或构建工具快速编译、测试和运行 Scala。
  • coursier - 纯 Scala 工件获取。
  • dregex - dregex 是一个 Java 库,它使用确定性有限自动机 (DFA) 实现正则表达式引擎。它支持一些 Perl 风格的功能,但保留线性匹配时间,并且还提供集合操作。
  • fast-string-interpolator - 生成超快字符串插值器的 Scala 宏。
  • fastring - 极快的字符串格式化。
  • gitbucket - 由 Scala 提供支持的 Git 平台,具有易于安装、高扩展性和 GitHub API 兼容性。
  • giter8 - 用于应用 GitHub 上定义的模板的命令行工具。
  • metals - 具有丰富 IDE 功能的 Scala 语言服务器 🚀。
  • mill - Mill 是一个快速 JVM 构建工具,支持 Java 和 Scala。对于常见工作流程,Mill 比 Gradle 快 2-3 倍,比 Maven 快 5-10 倍,旨在使您的项目的构建过程高性能、可维护且灵活。
  • sbt - sbt,交互式构建工具。
  • scalafix - Scala 的重构和 linting 工具。
  • Scalafmt - Scala 代码格式化程序。
  • scalariform - Scala 源代码格式化程序。
  • scapegoat - 用于静态代码分析的 Scala 编译器插件。
  • wartremover - 灵活的 Scala 代码检查工具。
  • scala2plantuml - Scala2PlantUML 从 Scala 代码生成 PlantUML 图。

Table of Contents / 地理空间

  • geotrellis - GeoTrellis 是一个用于高性能应用程序的地理数据处理引擎。
  • osm4scala - Scala 和 Spark 库专注于读取 OpenStreetMap Pbf 文件。
  • rtree2d - RTree2D 是一种 2D 不可变 R 树,用于平面和球坐标中的超快速最近邻和相交查询。
  • stac4s - 一个 scala 库,其中包含使用 SpatioTemporal Asset Catalogs 规范构建应用程序的原语。
  • franklin - STAC/OGC API 功能 Web 服务。

Table of Contents / DevOps

  • skuber - Scala Kubernetes 客户端库。

书籍

练习

教程与课程

商业课程

公司博客

播客

  • The Scala Logs - 采访开发人员、开源贡献者、主题专家等,讨论 FP、Scala、开源及其兴趣。
  • Scala Love - 关于 Scala 编程语言及其社区的播客。
  • CoRecursive Interviews - 对软件开发人员的深入采访,通常是关于 scala 库和函数式编程的主题。
  • Scala for Fun & Profit - 采访 Scala 用户和公司。

社区

Misc.

  • Programming Community Curated Resources for Learning Scala - Programming Community Curated Resources for Learning Scala 相关资源,聚焦编译器、解释器、运行时或编程语言实现,适合学习、收藏和实践。
  • Scalera Blog - 有关 Scala 语言及其环境的博客(操作指南、良好实践、提示等)。每周以西班牙语和英语撰写的帖子。
  • Scala @LibHunt - 社区驱动的有用 Scala 库、框架和软件列表。
  • List of Scala Online Courses - Classpert 提供的免费和付费 Scala 在线课程列表,在线课程搜索和比较网站。
  • Scala Days Conferences - 一个 YouTube 频道,提供在 Scala Days Conferences 上录制的完整视频。
  • CA Art - 一个旨在通过元胞自动机实验学习中级 Scala 的小项目。
😀 😊 😵‍💫 😡 🤝 🙏 👍 👎 ❤️