很棒的斯卡拉 ¶
社区驱动的有用 Scala 库、框架和软件列表. 这不是所有图书馆的目录,只是您探索的起点. 灵感来自 awesome-python . 其他非常棒的列表可以在 awesome-awesomeness 列表.
同样厉害的是 Scaladex,Scala 库的可搜索、标记和集中索引.
超过 500 名观星者的项目以粗体显示.
Contributing¶
随时欢迎您的贡献! 请提交拉取请求或创建问题以将新框架、库或软件添加到列表中. 不要提交过去 6 个月内未更新或不出色的项目.
不要在您的拉取请求中修改 README.md
. 它是自动生成的. 改为修改 template.md
.
Archive and Compression¶
名称 | 说明 | GitHub 活动 |
---|---|---|
SevenZ4S | Scala 的 SevenZip 库,易于使用. |
Artificial Intelligence¶
名称 | 说明 | GitHub 活动 |
---|---|---|
cilib | 类型安全、纯函数计算智能 |
Database¶
Scala 中的数据库访问库.
名称 | 说明 | GitHub 活动 |
---|---|---|
akka-persistence-gcp-datastore | akka-persistence-gcp-datastore 是一个日志和快照存储插件,用于在数据存储模式下使用 google cloud firestore 的 akka-persistence. | |
anorm | Anorm数据库库 | |
casbah | Casbah 现在正式停产 (EOL). | |
clickhouse-scala-client | 支持 Reactive Streams 的 Clickhouse Scala Client | |
couchbase-jvm-clients | 用于 JVM 客户端的 Couchbase Monorepo:Java、Scala、io-core…… | |
couchdb-scala | CouchDB 的纯功能 Scala 客户端 | |
doobie | Scala 的功能 JDBC 层. | |
elastic4s | Elasticsearch Scala 客户端 - 响应式、非阻塞、类型安全、HTTP 客户端 | |
etcd4s | 实现 V3 API 的 Scala etcd 客户端 | |
finagle-postgres | Finagle 的 PostgreSQL 协议支持 | |
laserdisc | Future-free Fs2 原生纯 FP Redis 客户端 | |
mysql-binlog-stream | 无 | |
longevity | Scala 和 NoSQL 的持久性框架 | |
lucene4s | 围绕 Lucene 的轻量级便利包装器,用于简化复杂任务并添加 Scala 糖. | |
mapperdao | 一个 Scala ORM 库 | |
morpheus | SQL 数据库的响应式类型安全 Scala 驱动程序 | |
neotypes | Neo4j 的 Scala 轻量级、类型安全、异步驱动程序 | |
phantom | 用于 Cassandra/Datastax Enterprise 的架构安全、类型安全、反应式 Scala 驱动程序 | |
pulsar4s | Apache Pulsar 的惯用、类型安全和响应式 Scala 客户端 | |
zio-quill | Scala 的编译时语言集成查询 | |
reactivecouchbase-rs-core | 使用反应流的新 ReactiveCouchbase 驱动程序 | |
ReactiveMongo | 用于 Scala 的非阻塞、响应式 MongoDB 驱动程序 | |
rediscala | 用于 Scala 的非阻塞、反应式 Redis 驱动程序(具有 Sentinel 支持) | |
relate | Scala 中的高性能数据库访问 | |
salat | Salat 是一个简单的案例类序列化库. | |
sangria | Scala GraphQL 实现 | |
scala-activerecord | Scala 的类似 ActiveRecord 的 ORM 库 | |
scala-forklift | 适用于 Slick、Git 等的类型安全数据迁移工具. | |
scala-redis | 用于连接到 redis 服务器或在客户端使用一致性哈希的 redis 节点集群的 scala 库. | |
scala-sql | scala SQL API | |
scalarelational | 用于定义、修改和查询 SQL 数据库的类型安全框架 | |
scalikejdbc | 一个整洁的基于 SQL 的数据库访问库,适用于 Scala 开发人员. 这个库自然地包装了 JDBC API 并为您提供易于使用的 API. | |
scanamo | Simpler DynamoDB access for Scala | |
scredis | 建立在 Akka IO 之上的非阻塞、超快 Scala Redis 客户端,用于 Livestream 的生产 | |
scruid | Scala + 德鲁伊:Scruid. 一个允许您在 Scala 中编写查询并将结果解析回类型安全类的库. | |
shade | Scala 的 Memcached 客户端 | |
slick | Slick (Scala Language Integrated Connection Kit) 是 Scala 的现代数据库查询和访问库 | |
slick-pg | PostgreSQL 的灵活扩展 | |
squeryl | 一种以最少的冗长和最大的类型安全与数据库对话的 Scala DSL | |
molecule | 针对 Datomic 数据库的 Scala 和 Scala.js 的非阻塞异步域可定制数据库查询语言. | |
zio-redis | 基于 ZIO 的 redis 客户端 | |
skunk | Scala + Postgres 的数据访问库. | |
kvs | 具有提要和搜索的高可用分布式强最终一致和顺序一致存储 |
Messaging¶
名称 | 说明 | GitHub 活动 |
---|---|---|
op-rabbit | Scala 等的自以为是的 RabbitMQ 库 |
Graphical User Interfaces¶
用于创建图形用户界面的库
名称 | 说明 | GitHub 活动 |
---|---|---|
scalafx | ScalaFX 简化了在 Scala 中创建基于 JavaFX 的用户界面 |
Web Frameworks¶
用于 Web 开发的 Scala 框架.
名称 | 说明 | GitHub 活动 |
---|---|---|
analogweb-scala | Scala 的微型高性能 HTTP 服务器 | |
chaos | 用于在 Scala 中编写 REST 服务的轻量级框架. | |
cask | Cask:Scala HTTP 微型框架 | |
colossus | Scala 的 I/O 和微服务库 | |
finatra | 构建在 TwitterServer 和 Finagle 上的快速、可测试的 Scala 服务 | |
framework | 升降架 | |
peregrine | 异步轻量级 Scala Web 框架 | |
playframework | 播放框架 | |
pagelets | 用于构建高度模块化应用程序的 Play Framework 模块 | |
reactive | 一个简单的 FRP 库和基于其构建的 Web UI 框架 | |
scalajs-react | Facebook 在 Scala.JS 上的 React | |
scalatra | Tiny Scala 高性能、异步 Web 框架,灵感来自 Sinatra | |
skinny-framework | "Scala on Rails" - 用于在 Scala 中快速开发的全栈 Web 应用程序框架 | |
unfiltered | 在 Scala 中为 HTTP 请求提供服务的工具包 | |
xitrum | 异步和集群 Scala Web 框架和 HTTP(S) 服务器 | |
youi | 使用 Scala 和 Scala.js 为 Web、移动和桌面开发下一代用户界面和应用程序. |
Reactive Web Frameworks¶
用于响应式 Web 开发的 Scala 库
名称 | 说明 | GitHub 活动 |
---|---|---|
Binding.scala | Scala 的反应式数据绑定 | |
korolev | 在服务器端运行的单页应用程序. | |
udash-core | 用于构建美观且可维护的 Web 应用程序的 Scala 框架. | |
vertx-lang-scala | Scala 的 Vert.x |
Data Binding and Validation¶
用于数据绑定和验证的 Scala 库
名称 | 说明 | GitHub 活动 |
---|---|---|
accord | Accord:Scala 的一个健全的验证库 | |
dupin | 最小的、惯用的、可定制的验证 Scala 库. | |
octopus | 用于无样板验证的 Scala 库 | |
veto | 如果您不同意数据 | |
fields | Scala 验证库 |
i18n¶
i18n 的 Scala 库.
名称 | 说明 | GitHub 活动 |
---|---|---|
scala-xgettext | Scala 编译器插件,像 GNU xgettext 命令一样将 Scala 源代码文件中的 i18n 字符串提取到 Gettext .po 文件 | |
scaposer | Scala 的 GNU Gettext .po 文件加载器 |
Authentication¶
用于实施身份验证方案的库.
名称 | 说明 | GitHub 活动 |
---|---|---|
akka-http-session | Web 和移动客户端 akka-http 会话,具有可选的 JWT 支持 | |
aws-request-signer | Scala 库,用于签署对 AWS 服务的 HTTP 请求. | |
OAuth2-mock-play | An implementation of an OAuth2 server designed for mocking/testing | |
play-googleauth | 用于针对 Google 进行身份验证的简单播放模块 | |
play-pac4j | Java 和 Scala 中用于 Play 框架 2 的安全库:OAuth、CAS、SAML、OpenID Connect、LDAP、JWT... | |
play2-auth | Play2.x 认证授权模块 | |
scala-oauth2-provider | 用 Scala 编写的 OAuth 2.0 服务器端实现 | |
securesocial | 为 Play Framework 应用程序提供 OAuth、OAuth2 和 OpenID 身份验证的模块 |
Cryptography¶
密码学和加密库.
名称 | 说明 | GitHub 活动 |
---|---|---|
scrypto | Scala 的加密原语 | |
tsec | 类型安全的通用密码库 - https://jmcardon.github.io/tsec/ | |
jose | Scala 的可扩展 JOSE 库 |
Testing¶
用于代码测试的库.
名称 | 说明 | GitHub 活动 |
---|---|---|
cornichon | 用于测试 HTTP JSON API 的 Scala DSL | |
gatling | 现代负载测试即代码 | |
minitest | Scala 和 Scala.js 的超轻测试库 | |
mockito-scala | Scala 语言的 Mockito | |
munit | 具有可操作错误和可扩展 API 的 Scala 测试库 | |
scalacheck | Scala 的基于属性的测试 | |
scalameter | JVM 平台的微基准测试和性能回归测试框架. | |
ScalaMock | 原生 Scala 模拟框架 | |
scalaprops | Scala 的基于属性的测试库 | |
scalatest | Scala 和 Java 开发者的测试工具 | |
scalive | Connect a Scala REPL to running JVM processes without any prior setup | |
specs2 | Scala 的软件规范 | |
stryker4s | Scala 的突变测试 | |
weaver-test | 并行运行所有内容的测试框架. | |
testcontainers-scala | 用于在 Scala 中进行测试的 Docker 容器 | |
utest | 一个简单的 Scala 测试框架 |
JSON¶
用于 json 的库.
名称 | 说明 | GitHub 活动 |
---|---|---|
argonaut | scala 中的纯功能 JSON 解析器和库. | |
borer | Scala 中的高效 CBOR 和 JSON(反)序列化 | |
circe | Scala 的另一个 JSON 库 | |
diffson | Json 的 Scala 差异/补丁库 | |
jackson-module-scala | Jackson 的附加模块 (https://github.com/FasterXML/jackson) 以支持 Scala 特定的数据类型 | |
jawn | Jawn 用于解析 jay-sawn (JSON) | |
json4s | JSON 库 | |
jsoniter-scala | 用于编译时生成安全和超快速 JSON 编解码器的 Scala 宏 | |
json | Persist-Json,一个用 Scala 编写的快速 Json 解析器 | |
ninny-json | 知道空字段和不存在字段之间区别的 JSON 类型类 | |
play-json | Play JSON 库 | |
pushka | ABANDONED 带注释的 Pure Scala 序列化库 | |
sbt-json | 生成 Scala 案例类的 sbt 插件,用于轻松、静态类型和隐式访问 JSON 数据,例如来自 API 响应 | |
scala-jsonapi | Scala 支持库,用于将 JSON API 规范与 Spray, Play 集成! 或圈子 | |
ScalaJack | Scala 的快速 JSON 解析器/生成器 | |
spray-json | Scala 中的轻量级、干净和简单的 JSON 实现 | |
zio-json | 与 ZIO 紧密集成的快速、安全的 JSON 库. |
YAML¶
用于 YAML 的库.
名称 | 说明 | GitHub 活动 |
---|---|---|
moultingyaml | SnakeYAML 的 Scala 包装器 |
CSV¶
用于处理 CSV 的库.
名称 | 说明 | GitHub 活动 |
---|---|---|
fm-flatfile | 用于读取平面文件数据的 Scala 库 (CSV/TSV/XLS/XLSX) | |
kantan.csv | Scala 的 CSV 处理库 | |
scala-csv | Scala 的 CSV 读取器/写入器 | |
spata | Scala 的功能性、基于流的 CSV 处理器 |
Serialization¶
用于序列化和反序列化数据以进行存储或传输的库.
名称 | 说明 | GitHub 活动 |
---|---|---|
avro-codegen | 用于 Avro 模式的 Scala 代码生成器. | |
borer | Scala 中的高效 CBOR 和 JSON(反)序列化 | |
avro4s | Scala 的 Avro 模式生成和序列化/反序列化 | |
chill | Kryo 序列化库的 Scala 扩展 | |
msgpack-scala | Scala / msgpack.org[Scala] 的 MessagePack 序列化程序实现 | |
ScalaPB | Scala 的协议缓冲区编译器. | |
scodec | 用于处理二进制数据的 Scala 组合器库 | |
scrooge | 一个 Thrift 解析器/生成器 | |
upickle | uPickle:一个用于 Scala 的简单、快速、无依赖性的 JSON 和二进制 (MessagePack) 序列化库 | |
proto | 基于带有宏的 Protocol Buffers 的 Scala ⅔ 轻量级快速序列化库 |
Science and Data Analysis¶
用于科学计算、数据分析和数值处理的库.
名称 | 说明 | GitHub 活动 |
---|---|---|
algebird | Scala 的抽象代数 | |
axle | 用于科学云计算和可视化的 Axle 域特定语言 | |
BigDL | 为分布式大数据构建大规模人工智能应用 | |
breeze | Breeze 是 Scala 的数值处理库. | |
Clustering4Ever | C4E,一个用 Scala 编写的 JVM 友好库,用于本地和分布式 (Spark) 集群. | |
doddle-model | doddle-model:Scala 中的机器学习. | |
figaro | Figaro 编程语言和核心库 | |
libra | 一个基于依赖类型的维度分析库 | |
LoMRF | LoMRF 是马尔可夫逻辑网络的开源实现 | |
mgo | 多目标优化的纯函数遗传算法 | |
MLLib | Spark 的机器学习框架 | |
NDScala | Scala 3 中的 N 维数组.想想 NumPy ndarray,但在形状、数组/轴标签和数字数据类型上是类型安全的 | |
numsca | numsca 是 scala 的 numpy | |
onnx-scala | Scala 3 中用于类型化、功能性深度学习的 ONNX(开放神经网络交换)API 和后端 | |
openmole | 使用高吞吐量计算探索仿真模型的工作流引擎 | |
Optimus | Optimus 是 Scala 的数学编程库. | |
OscaR | 用于解决运筹学问题的 Scala 工具包 | |
rings | Rings:用于多项式环的高效 JVM 库 | |
smile | 统计机器智能与学习引擎 | |
spark-notebook | 使用 Scala 和 Spark 的交互式和反应式数据科学. | |
spire | Scala 的强大新数字类型和数字抽象. | |
squants | 用于数量、度量单位和维度分析的 Scala API | |
Synapses | 一组函数式和主流语言的神经网络库 | |
tensorflow_scala | Scala 编程语言的 TensorFlow API | |
zeppelin | 基于 Web 的笔记本,支持使用 SQL、Scala 等进行数据驱动的交互式数据分析和协作文档. | |
spark-nlp | 最先进的自然语言处理 |
Big Data¶
名称 | 说明 | GitHub 活动 |
---|---|---|
BIDMach | CPU 和 GPU 加速的机器学习库 | |
flink | 阿帕奇闪存 | |
gridscale | 用于访问各种文件、批处理系统、作业调度程序和网格中间件的 Scala 库. | |
kafka | Apache Kafka 镜像 | |
alpakka-kafka | Alpakka Kafka connector -Alpakka 是基于 Reactive Streams 和 Akka 的 Java 和 Scala 的反应式企业集成库. | |
scalding | 用于级联的 Scala API | |
schemer | CSV、TSV、JSON、AVRO 和 Parquet 架构的架构注册表. 支持模式推理和 GraphQL API. | |
scio | 用于 Apache Beam 和 Google Cloud Dataflow 的 Scala API. | |
Scrunch | 一个 Scala 包装器 Apache Crunch 它提供了一个用于编写、测试和运行 MapReduce 管道的框架. | |
spark | Apache Spark - 用于大规模数据处理的统一分析引擎 | |
sparkplug | Spark 包使用基于 SQL 的规则“堵塞”数据中的漏洞 ⚡️ | |
sparta | 基于 Spark Streaming 的实时分析和数据管道 | |
summingbird | 使用 Scalding 和 Storm 流式处理 MapReduce | |
Vegas | Scala + Spark 缺少的 MatPlotLib | |
gallia-core | 用于数据转换的模式感知 Scala 库 |
Command Line Interfaces¶
用于创建命令行界面的库
名称 | 说明 | GitHub 活动 |
---|---|---|
clist | 命令行界面 Scala 工具包 | |
decline | Scala 的可组合命令行解析器. | |
mainargs | 一个小型、方便、无依赖的库,用于在 Scala 中解析命令行参数 | |
scallop | 一个简单的 Scala CLI 解析库 | |
scopt | Scala 的命令行选项解析 |
Image processing and image analysis¶
2D 和 3D 图像处理和图像分析
名称 | 说明 | GitHub 活动 |
---|---|---|
scala-phash | 通过哈希码进行图像比较 | |
scalismo | 可扩展图像分析和形状建模 | |
scrimage | Java、Scala 和 Kotlin 图像处理库 |
Sound processing and music¶
名称 | 说明 | GitHub 活动 |
---|---|---|
Chromaprint.scala | JVM 的 Chromaprint/AcoustID 音频指纹识别 | |
ScalaCollider | 基于 SuperCollider 的 Scala 声音合成库. |
Functional Reactive Programming¶
事件流、信号、可观察值等
名称 | 说明 | GitHub 活动 |
---|---|---|
fs2 | Scala 的组合式流式 I/O 库 | |
iteratee | 猫的迭代器 | |
monix | Scala 和 Scala.js 的异步反应式编程. | |
reactors | 并发反应式编程框架. | |
reactor-scala-extensions | Project Reactor 的 Flux 和 Mono 的 scala 扩展 | |
REScala | REScala - 面向对象应用程序中的反应式编程 | |
RxScala | RxScala – Scala 的反应式扩展 – 一个使用可观察序列编写异步和基于事件的程序的库 | |
scala.rx | Scala 中函数式反应式编程的实验库 | |
zio | ZIO — 一个类型安全的、可组合的库,用于 Scala 中的异步和并发编程 | |
SynapseGrid | SynapseGrid 是一个用于构建动态低延迟数据流系统的框架. | |
vertx-lang-scala | Scala 的 Vert.x | |
wire-signals | 一个小而有效的 Scala 事件处理库 |
Modularization and Dependency Injection¶
应用程序的模块化、依赖注入等
名称 | 说明 | GitHub 活动 |
---|---|---|
airframe | Essential Building Blocks for Scala | |
izumi | 用于 Scala 工具链的面向生产力的轻量级花哨内容集合 | |
macwire | 轻量级非侵入式 Scala 依赖注入库 | |
scala-guice | Google Guice 的 Scala 扩展 | |
scaldi | 轻量级 Scala 依赖注入库 | |
sclasner | Scala 类路径扫描器 | |
subcut | Scala 特性下的唯一绑定类 | |
jam | 非常简单的 DI Scala 库. |
Distributed Systems¶
用于编写分布式应用程序的库和框架.
名称 | 说明 | GitHub 活动 |
---|---|---|
akka | 在 JVM 上构建高度并发、分布式和弹性的消息驱动应用程序 | |
akka-tracing | Akka 的分布式跟踪扩展. 提供与 Play 框架、Spray 和 Akka HTTP 的集成. | |
annette | 构建分布式、可扩展、企业范围业务应用程序的平台 | |
curiodb | 分布式 NoSQL 数据库 | |
finagle | 一个容错的、与协议无关的 RPC 系统 | |
glokka | 在 Akka 集群中按名称注册和查找 actor 的库 | |
lagom | JVM 的反应式微服务 | |
parapet | 用于构建分布式和事件驱动系统的纯函数库 | |
poppet | 最小的、类型安全的 RPC Scala 库. | |
reactors | 分布式编程的基础框架. |
Extensions¶
Scala 扩展.
名称 | 说明 | GitHub 活动 |
---|---|---|
Ammonite | Scala 脚本 | |
better-files | 简单、安全和直观的 Scala I/O | |
blindsight | Blindsight 是一个 Scala 日志记录 API,具有基于 DSL 的结构化日志记录、流畅的日志记录、语义日志记录、流日志记录和上下文感知日志记录. | |
cassovary | Cassovary 是一个简单的 JVM 大图形处理库 | |
cats | 用于函数式编程的轻量级、模块化和可扩展库. | |
chimney | 用于无样板、类型安全数据转换的 Scala 库 | |
chronoscala | nscala_time 的 JSR-310 端口 | |
Dsl.scala | 在 Scala 中创建嵌入式领域特定语言的框架 | |
each | 将原生命令式语法转换为 scalaz 的 monadic 表达式的宏库 | |
eff | 猫的 Eff monad - https://atnos-org.github.io/eff | |
enableIf.scala | A library that toggles Scala code at compile-time, like #if in C/C++ | |
enumeratum | 一个类型安全、无反射、强大的 Scala 枚举实现,具有详尽的模式匹配警告和有用的集成. | |
Freasy-Monad | 使用具有一流 Intellij 支持的 Scala 宏创建 Free Monad 的简单方法. | |
freedsl | 基于abstract wrapping type和free monad的实用效果合成库 | |
freestyle | 以 FP 为中心的 Scala 库的凝聚力和实用框架 | |
hamsters | 一个迷你 Scala 实用程序库 | |
lamma | Lamma schedule generator for Scala 是一个专业的定期计划生成库,如固定收益息票支付、股权衍生固定日期生成等. | |
larray | Scala 和 Java 的大型堆外数组和 mmap 文件 | |
log4s | 用于 Scala 的高性能 SLF4J 包装器. | |
izumi | 用于 Scala 工具链的面向生产力的轻量级花哨内容集合 | |
Monocle | Scala 的光学库 | |
nscala-time | 基于 scala-time 的 Joda Time 的新 Scala 包装器 | |
quicklens | 修改深度嵌套的案例类字段 | |
scala-records | 基于结构优化类型和宏的 Scala 标记记录. | |
refined | Scala 的优化类型 | |
scala-async | Scala 的异步编程工具 | |
scala-graph | Graph for Scala 旨在提供基本的图形功能,无缝地融入 Scala Collection Library. 与 scala.collection 的知名成员一样,Graph for Scala 是一个内存图形库,旨在以用户友好的方式编辑和遍历图形、查找循环等. | |
scala-logging | 用于 Scala 包装 SLF4J 的方便且高性能的日志记录库. | |
scalameta | 读取、分析、转换和生成 Scala 程序的库 | |
Scalactic | 与质量相关的小型实用程序库,有助于保持代码清晰和正确. | |
scalaz | Scala 中的原则函数式编程 | |
scribe | 世界上最快的日志记录库. 在 Scala 中从头开始构建并以编程方式配置. | |
shapeless | Scala 的泛型编程 | |
simulacrum | Scala 中对类型类的一流语法支持 | |
squid | Squid – Scala 的类型安全元编程和编译框架 | |
tinylog | tinylog 是用于 Java、Kotlin、Scala 和 Android 的轻量级日志记录框架 | |
util | 来自 Twitter 的精彩可重用代码 |
Misc¶
不属于任何特定类别的项目.
名称 | 说明 | GitHub 活动 |
---|---|---|
Agora | 选举计票算法库. | |
Ammonite | Scala 脚本 | |
aws4s | 面向 Scala 的非阻塞 AWS SDK 公开了构建在 http4s、fs2 和 cats 之上的强类型 API | |
bootzooka | 快速开始开发基于 Scala 的微服务或 Web 应用程序的简单项目,无需编写登录、用户注册等. | |
eclair | 闪电网络的 Scala 实现. | |
fansi | 用于处理 Fancy Ansi 彩色字符串的 Scala/Scala.js 库 | |
figlet4s | Scala 中的 ASCII 艺术横幅 | |
fs2-aws | 与 AWS 交互的 fs2 实用程序 | |
google4s | Scala 中用于 Google 云服务的精简功能库 | |
google-api-scala | 此 API 是 google java 库的包装器. 当前正在映射管理目录、驱动器和日历. | |
mailgun4s | Scala 中的 Mailgun API 实现 | |
managerial | 用于管理资源的零依赖 Scala 库 | |
media4s | 围绕 ffmpeg、ffprobe、ImageMagick 和其他与媒体相关的工具的 Scala 命令行包装器. | |
miniboxing-plugin | Miniboxing 是一种程序转换,可在与基本类型一起使用时提高 Scala 泛型的性能. 它可以将通用集合加速 1.5 倍到 22 倍,同时将字节码重复保持在最低限度. 您可以轻松地将 miniboxing 添加到您的 sbt 项目中: | |
ostinato | 在服务器 (Scala) 和浏览器 (ScalaJS) 上运行的国际象棋库. | |
play-swagger | 用于播放框架的 Swagger 规范生成器 | |
PPrint | Scala 中的漂亮打印值、类型和类型签名 | |
pureconfig | 用于加载配置文件的无样板库 | |
REPLesent | 使用 Scala REPL 构建演示文稿的简洁小工具 | |
scala-ssh | 通过 SSH 远程 shell 访问您的 Scala 应用程序 | |
scala-stm | 用于 Scala 的基于库的软件事务内存 (STM),以及事务集和映射 | |
Scavenger | 一个实验性的自动定理证明器. | |
service-chassis | 一个让你的应用程序和服务快速启动的 Scala 底盘 | |
spliff | Scala 中的高效差异 | |
scountries | Scala 库,为国家及其细分提供 ISO 3166 代码的枚举. |
Android¶
用于 Android 开发的 Scala 库和包装器.
名称 | 说明 | GitHub 活动 |
---|---|---|
sbt-android | 一个易于使用的 sbt 插件,适用于所有 Android 项目 | |
scaloid | Scaloid 使您的 Android 代码易于理解和维护. |
HTTP¶
用于 HTTP 客户端的 Scala 库和包装器.
名称 | 说明 | GitHub 活动 |
---|---|---|
akka-http | Akka 的 Streaming-first HTTP 服务器/模块 | |
reboot | Java AsyncHttpClient 的 Scala 包装器. | |
finch | 用于构建 Finagle HTTP 服务的 Scala 组合器库 | |
fintrospect | 为 Finagle 实现快速、类型安全的 HTTP Web 服务 | |
http4s | 用于 HTTP 的最小的、惯用的 Scala 接口 | |
jefe | 管理应用程序的安装、更新、下载、启动、错误报告等. | |
lolhttp | Scala 的 HTTP 服务器和客户端库. | |
requests-scala | 流行的 Python Requests HTTP 客户端的 Scala 端口:灵活、直观且易于使用. | |
RosHTTP | 统一的 Scala.js + Scala HTTP 客户端 API | |
scalaj-http | HttpURLConnection 的简单 Scala 包装器. 包括 OAuth. | |
scalaxb | scalaxb 是 Scala 的 XML 数据绑定工具. | |
sttp | 您一直想要的 Scala HTTP 客户端! | |
tapir | 声明式、类型安全的 Web 端点库 | |
endpoints4s | 在 Scala 中描述 HTTP 端点并派生客户端、服务器和文档 | |
frontier | 快速、高效、纯功能、无影响的 websocket、http 和 udp 服务器、http 客户端和 telegram bot |
Semantic Web¶
用于与 Web of Data 和其他 RDF 工具交互的 Scala 库.
名称 | 说明 | GitHub 活动 |
---|---|---|
banana-rdf | 香蕉RDF | |
scowl | 用于使用 OWL API 进行编程的 Scala DSL. |
Metrics and Monitoring¶
用于收集指标和监控应用程序的 Scala 库.
名称 | 说明 | GitHub 活动 |
---|---|---|
metrics-scala | 用于 Dropwizard 指标的 Scala API. |
Parsing¶
用于创建解析器的 Scala 库.
名称 | 说明 | GitHub 活动 |
---|---|---|
atto | 友好的小解析器 | |
fastparse | 在 Scala 中快速编写快速解析器 | |
parboiled2 | 用于 Scala 2.10+ 的基于宏的 PEG 解析器生成器 | |
scala-parser-combinators | Scala 的简单的基于组合器的解析. 以前是 Scala 标准库的一部分,现在是一个单独的社区维护模块 | |
cats-parse | 猫生态系统的解析库 | |
scallion | Scala 中的 LL(1) 解析器组合器 |
Sbt plugins¶
Sbt 插件让您的生活更轻松.
名称 | 说明 | GitHub 活动 |
---|---|---|
better-monadic-for | 在没有隐式 withFilter 的情况下对 scala for 进行脱糖 |
|
coursier | 纯 Scala 工件获取 | |
mdoc | Scala 的类型检查降价文档 | |
sbt-api-mappings | 一个 Sbt 插件,为常见的 Scala 库填充 apiMappings. | |
sbt-apidoc | apidocjs 的端口 https://apidocjs.com 到 sbt,记录 REST Api | |
sbt-assembly | 部署 über-JAR. 重新启动进程. (codahale/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 | git、site 和 ghpages 支持 sbt 项目. | |
sbt-groll | 滚动 Git 历史的 sbt 插件 | |
sbt-header | sbt-header 是一个用于创建文件头的 sbt 插件,例如 copyright headers | |
sbt-hepek | 用于将 Scala 对象渲染到文件的 Sbt 插件. 和更多! | |
sbt-ide-settings | 用于调整各种 IDE 设置的 SBT 插件 | |
sbt-jmh | “不要相信任何人,替补一切.” - JMH 的 sbt 插件(Java Microbenchmark Harness) | |
sbt-microsites | 一个 sbt 插件为你的项目创建很棒的微型网站 | |
mima | 在 Scala 中捕获二进制不兼容的工具 | |
sbt-native-packager | sbt 本地包装器 | |
sbt-pack | 用于创建可分发的 Scala 包的 sbt 插件. | |
sbt-pgp | sbt 的 PGP 插件 | |
sbt-release | sbt 的发布插件 | |
sbt-revolver | 用于 Scala 中危险的快速开发周转的 SBT 插件 | |
sbt-scala-js-map | 为 Github 上托管的 Scala.js 项目配置源映射的 Sbt 插件 | |
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 | 可以检查 Maven 和 Ivy 存储库的依赖更新的 sbt 插件 | |
sbt-eclipse | 用于创建 Eclipse 项目定义的 sbt 插件 | |
scala-clippy | Scala 编译器错误的好建议 | |
splain | scala 更好的隐式错误 | |
tut | scala 的文档/教程生成器 | |
xsbt-web-plugin | sbt 的 Servlet 支持 | |
sbt-deploy-ssh | SBT 部署插件 | |
sbt-git | SBT 的 git 插件 | |
sbt-git | 使用 git-describe 作为版本并在 SBT shell 中运行 git 命令 |
XML / HTML¶
XML 和 HTML 生成和处理
名称 | 说明 | GitHub 活动 |
---|---|---|
scala-scraper | 用于从 HTML 页面抓取内容的 Scala 库 | |
xs4s | Scala 的 XML Streaming,包括 FS2/cats 支持 |
Markdown¶
名称 | 说明 | GitHub 活动 |
---|---|---|
Laika | 用于 sbt 和 Scala 应用程序的文本标记转换器,将 Markdown 和 reStructuredText 转换为 HTML、EPUB 和 PDF |
JavaScript¶
JavaScript 生成和互操作库.
名称 | 说明 | GitHub 活动 |
---|---|---|
scalafiddle-editor | ScalaFiddle 的 Web 用户界面 | |
scala-js | Scala.js,Scala 到 JavaScript 的编译器 |
Scheduling¶
名称 | 说明 | GitHub 活动 |
---|---|---|
akka-quartz-scheduler | 用于 Akka 中 cron 样式调度的 Quartz 扩展和实用程序 |
Templating¶
网络模板引擎.
名称 | 说明 | GitHub 活动 |
---|---|---|
beard | 一个轻量级、无逻辑的模板引擎,用 Scala 编写,灵感来自 Mustache | |
scalatags | ScalaTags 是一个用于 Scala 的小型 XML/HTML 构造库. | |
scalate | Scalate 是一个基于 Scala 的模板引擎,它支持 HAML、Mustache 和 JSP、Erb 和 Velocity 风格的语法. | |
twirl | Twirl 是 Play 的默认模板引擎 | |
hepek | 纯 Scala 中类型安全的 HTML 模板. 包括静态站点生成器! 播放和 ScalaJS 支持! |
Tools¶
名称 | 说明 | GitHub 活动 |
---|---|---|
scala-trace-debug | 基于宏的打印调试. 在您的 IDE 中找到日志语句. | |
bloop | Bloop 是一个构建服务器和 CLI 工具,可以从任何编辑器或构建工具快速编译、测试和运行 Scala. | |
codacy-scalameta | Scalameta 的 Codacy 工具 | |
coursier | 纯 Scala 工件获取 | |
dregex | Dregex 是一个 JVM 库,它使用确定性有限自动机 (DFA) 实现正则表达式引擎. 它支持一些 Perl 风格的特性,但保留了线性匹配时间,还提供了集合操作. | |
fast-string-interpolator | 生成超快字符串插值器的 Scala 宏. | |
fastring | 极快的字符串格式化 | |
gitbucket | 一个由 Scala 提供支持的 Git 平台,具有易于安装、高扩展性和 GitHub API 兼容性 | |
giter8 | 用于应用 GitHub 上定义的模板的命令行工具 | |
metals | 具有丰富 IDE 特性的 Scala 语言服务器 | |
mill | 你闪亮的新 Java/Scala 构建工具! | |
pos | 基于宏的打印调试. 在您的 IDE 中找到调试语句. 支持日志记录. | |
sbt | sbt,交互式构建工具 | |
scalafix | Scala 的重构和 linting 工具 | |
Scalafmt | Scala 的代码格式化程序 | |
scalariform | Scala 源代码格式化程序 | |
scalastyle | 阶梯 | |
Scalatex | 可编程的、类型安全的文档生成 | |
scapegoat | 用于静态代码分析的 Scala 编译器插件 | |
wartremover | 灵活的 Scala 代码检查工具 | |
stone | URL(反)构造. 威瑟斯. | |
scalajs-router | ScalaJS 前端路由器 | |
scala2plantuml | Scala2PlantUML 从 Scala 代码生成 PlantUML 图. |
Geospatial¶
帮助地理空间计算和工件的库.
名称 | 说明 | GitHub 活动 |
---|---|---|
geotrellis | GeoTrellis 是一个用于高性能应用程序的地理数据处理引擎. | |
osm4scala | Scala 和 Spark 库专注于读取 OpenStreetMap Pbf 文件. | |
rtree2d | RTree2D 是一种二维不可变 R 树,用于平面和球坐标中的超快速最近和交叉查询 | |
sfcurve | LocationTech SFCurve 是一个用于创建、转换和查询空间填充曲线的 Scala 库 | |
stac4s | 一个带有原语的 scala 库,用于使用 SpatioTemporal Asset Catalogs 规范构建应用程序 | |
franklin | STAC/OGC API 功能 Web 服务 |
Devops¶
DevOps 相关工具和库.
名称 | 说明 | GitHub 活动 |
---|---|---|
skuber | Scala Kubernetes 客户端库 |
Learning Scala¶
学习 Scala 的好书、博客和其他资源
Books¶
- Essential Scala 由 Noel Welsh 和 Dave Gurnell 编写 - Essential Scala 面向首次接触 Scala 的经验丰富的开发人员.
- Functional and Reactive Domain Modeling 通过 Debasish Ghosh
- Functional Programming for Mortals 通过山姆哈利迪
- Functional Programming in Scala 作者:Paul Chiusano 和 Runner Bjarnason
- Functional Programming, Simplified (Scala edition) 阿尔文·亚历山大
- Get Programming with Scala 作者:Daniela Sfregola - 教程驱动的 Scala 介绍
- Practical FP in Scala: A hands-on approach 通过加布里埃尔沃尔佩
- Programming in Scala 作者:Martin Odersky、Lex Spoon 和 Bill Venners
- Pure functional HTTP APIs in Scala 通过延斯·格拉塞尔
- Reactive Programming with Scala and Akka - 使用反应式编程的概念来构建在多个节点上运行的分布式系统
- Scala Cookbook 阿尔文·亚历山大
- Scala for the Impatient 作者 Cay Horstmann - 通过简短易懂的解释涵盖了大多数 Scala 功能.
- Scala With Cats 作者:Noel Welsh 和 Dave Gurnell - 使用现代函数式编程技术学习系统架构和设计 Cats
- The Type Astronaut's Guide to Shapeless 通过戴夫古内尔
- Zionomicon John A. De Goes,Adam Fraser - 掌握使用 ZIO 创建可扩展、类型安全、并发应用程序的黑暗艺术
Exercises¶
- S-99 - Scala 九十九题
- Scala Exercises - 将流行的 Scala Koans 带到网络上. 提供数百个可解决的练习,分为 42 个类别,涵盖 Scala 语言的基础知识.
- Exercism - Scala Exercises - 社区驱动的 Scala 练习.
- Learn-by-doing functional programming course on Scala - 涵盖类型类、仿函数、应用程序、单子、单子变换器、免费单子
Tutorials and courses¶
- A Tour of Scala - 对一些核心语言概念的简要介绍.
- Functional Programming in Scala - Martin Odersky 等人创建的 Coursera 专业化(5 场比赛). 在 EPFL(洛桑联邦理工学院).
- 资源来自 Dr. Mark Lewis >> Website | Youtube Playlists
- Demos and Examples in Scala (Chinese) ★ 923 ⧗ 2 - 示例 Scala 库使用的 repo,用中文编写
- Introduction to programming with dependent types in Scala - Dmytro Mitin 的视频课程
- Scala Collections Cookbook - Scala 集合介绍. 用中文写的.
- Free Scala Courses - 精选的免费 Scala 课程列表.
Commercial courses¶
- Foundations of Functional Programming in Scala - 包含功能原理、自定义 IO(效果)和功能设计的练习的专业视频课程.
- Scala Algorithms - 纯功能 Scala 中近 100 种算法的集合,带有测试用例、解释和基于 Web 的 IDE. 使用 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 - 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 - 关于 scala 的每周时事通讯
- 47 Degrees - 函数式编程新闻、更新等.
Podcasts¶
- The Scala Logs - 采访开发人员、开源贡献者、主题专家等,讨论 FP、Scala、开源和他们的兴趣.
- Scala Love - 关于 Scala 编程语言及其社区的播客
- CoRecursive Interviews - 对软件开发人员的深入访谈,通常是关于 scala 库和函数式编程的主题.
Communities¶
- Scala Ukraine - 乌克兰 Scala 社区的电报聊天
Misc.¶
- 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 日会议上录制
- CA Art - 一个旨在通过元胞自动机实验来学习中级 Scala 的小项目