文档

§Play 如何处理 Akka 的许可证变更

您可能已经听说,在 2022 年 9 月,Lightbend Inc. 改变了 Akka 的许可证模式,从 Apache 2.0 许可证切换到 商业来源许可证 (BSL) 1.1
此变更从 Akka 2.7 和 Akka HTTP 10.4 开始生效。

Play 版本 2.x 在幕后使用 Akka,并且还为框架用户提供了在 Play 框架文档中与 Akka 类和 API 交互的方式。此外,除了 Netty 后端之外,Akka HTTP 服务器后端在 Play 2.x 中可用。

许多人过去和现在都担心,如果 Play 切换到使用 BSL 许可的较新 Akka 版本,他们的公司是否需要支付许可证费用。为了解决这些问题,Lightbend 为 Play 框架引入了 “额外使用授权”。这允许在 Play 2.x 中使用 Akka,并使 Play 框架用户能够在他们的源代码中(包括生产环境)使用某些 Akka 功能,而无需受到许可证限制。但是,Play 框架用户和高级赞助商都表达了对这些例外情况过于狭窄的担忧。这意味着,如果您在 Play 2.x 应用程序中以 Play 框架官方文档中未记录的方式使用 Akka,您可能已经需要获得许可证。这种使用情况很容易超出该例外范围。例如,注入一个 ActorSystem(不适用于 WebSockets)将触发新 BSL 许可证的应用,使您受到完整 Akka 许可证模式的约束。

我们的首要任务是防止 Play 框架用户在不知情的情况下无意中受到 BSL 许可方案的约束,并避免 Play 框架依赖于非开源库。因此,Play 2.9+ 默认情况下继续与 Akka 2.6 和 Akka HTTP 10.2 一起提供。如果用户希望升级到使用 BSL 的 Akka 版本,他们可以自行决定,这是一个明智的选择,用户将完全了解新的许可证模式。我们的 Play ScalaPlay Java 更新指南提供了有关如何进行此转换的帮助。

注意: Akka 2.6 / Akka HTTP 10.2 已于 2023 年 9 月 停止维护

§介绍 Apache Pekko 和 Play 3.0

我们在 2023 年 10 月发布了 Play 3.0。此版本用 Pekko 和 Pekko HTTP 替换了 Akka 和 Akka HTTP:Apache Pekko 代表 Akka 2.6 和 Akka HTTP 10.2 的社区分支,由高度参与和积极的个人开发,其中一些人以前是 Lightbend Akka 团队的成员。Pekko 正在积极开发中。例如,Pekko HTTP 已经移植到 Scala 3,这是一个目前仅从 BSL 许可的 Akka HTTP 版本 10.4 开始可用的功能。此外,Pekko 已经修复了 Akka 2.6 和 Akka HTTP 10.2 中未解决的错误和安全漏洞。

除了在幕后使用不同的框架外,Play 2.9Play 3.0 提供相同的功能并接收并行维护,受益于相同的增强功能和错误修复。

§您的选择总结

§停止维护 (EOL) 日期

如果您正在考虑使用 Play 2.9(使用 BSL 许可的 Akka 和 Akka HTTP),我们想通知您 Play 核心团队资源有限。您可能想考虑成为高级赞助商以帮助维持 2.x 系列。否则,如果对 2.x 系列的兴趣下降,我们可能需要在某个时候停止它。

下一步:Play 版本


在此文档中发现错误?此页面的源代码可以在 此处 找到。阅读完 文档指南 后,请随时贡献拉取请求。有疑问或建议要分享?转到 我们的社区论坛 与社区开始对话。