Apache Pekko
Apache Pekko 是一个用于构建并发、分布式、弹性且具备弹性的应用程序的开源框架。 Pekko 使用 Actor Model 为并发提供更直观的抽象。 利用这些抽象,Pekko 还提供了用于持久化、流、HTTP 等的库。
Pekko is a fork of Akka 2.6.x, prior to the Akka project's adoption of the Business Source License. Pekko now contains some features from Akka 2.7.0 (Apache 2.0 Licensed now)
参考文档
请参阅 https://pekko.apache.org 获取文档,包括 API 文档。所有 Apache Pekko 模块的文档均可在此找到。
从源码构建
CI 构建基于 Linux(Ubuntu),大多数 Pekko 开发者使用 Mac 或 Linux 机器。已有报告指出在 Windows 上构建时会出现问题(#829)。
使用 IntelliJ IDEA
要使用 IntelliJ IDEA,您需要将项目配置为使用 JDK 17。如需可视化指南,请参阅此 Q&A。
- File > Project Structure > Project Settings > Project > 将您的 JDK 设置为 17 版本
- Settings > ... > Scala Compiler Server > 将您的 JDK 设置为 17 版本
- Settings > ... > sbt > 将您的 JRE 设置为 17 版本
前提条件
运行构建
-
打开命令窗口,并将目录切换到你首选的基础目录
-
使用 git 克隆 repo 或从 https://pekko.apache.org 下载源码发布版(并根据需要解压或解包)
-
将目录切换到你安装源码的目录(该目录下应有一个名为
build.sbt的文件) -
sbt compile编译项目默认 Scala 版本(2.13)的主源码sbt +compile将为所有受支持的 Scala 版本进行编译
-
sbt test将编译代码并运行单元测试 -
sbt testQuick类似于 test,但在 shell 模式下重复执行时仅运行失败的测试 -
sbt testQuickUntilPassed类似于 testQuick,但会循环执行直到测试通过。 -
sbt package将构建 jar 包- jar 包将构建到各个模块的 target 目录中
- 对于 'actor' 模块,jar 包将构建到
actor/target/scala-2.13/
-
sbt publishLocal将 jar 包推送到你的本地 Apache Ivy 仓库 -
sbt publishM2将 jar 包推送到你的本地 Apache Maven 仓库 -
sbt docs/paradox将构建文档(描述模块功能的文档)sbt docs/paradoxBrowse执行相同操作,但完成后会在你的浏览器中打开文档index.html文件将出现在target/paradox/site/main/
-
sbt unidoc将为所有模块构建 Javadocs 并将其加载到一个位置(可能需要 Graphviz,参见上文的前置条件)index.html文件将出现在target/scala-2.13/unidoc/
-
sbt sourceDistGenerate将生成源码发布版到target/dist/ -
文件名和文档中出现的版本号默认是派生的。派生的版本号包含最新的 git 提交 ID 或日期/时间(如果该目录未受 git 控制)。
- 在运行 sbt 命令时,您可以显式设置版本号
- 例如
sbt "set ThisBuild / version := \"1.0.0\"; sourceDistGenerate"
- 例如
- 或者,您可以在包含
build.sbt的同一目录中添加一个名为version.sbt的文件,其中包含类似以下内容ThisBuild / version := "1.0.0"
- 在运行 sbt 命令时,您可以显式设置版本号
社区
与 Pekko 社区互动有几种方式:
- GitHub discussions:用于提问和一般性讨论。
- Pekko dev mailing list:用于 Pekko 开发讨论。
- Pekko users mailing list:用于 Pekko 用户讨论。
- GitHub issues:用于提交 bug 报告和功能请求。在创建新 issue 之前,请先搜索现有的 issue。如果你不确定是否发现了 bug,建议先在 GitHub discussions 或邮件列表中提问。
贡献
非常欢迎贡献。如果你有关于如何改进 Pekko 的想法,请随时创建 issue 或提交 pull request。
请参阅 CONTRIBUTING.md 了解开发工作流程以及如何创建你的 pull request 的详细信息。
行为准则
Apache Pekko 遵循 Apache code of conduct。参与本项目即表示你同意遵守其条款。
许可证
Apache Pekko 基于 Apache License, version 2.0 提供。请参阅 LICENSE 文件了解详细信息。