§Play 如何处理 Akka 的许可证变更
您可能已经听说,在 2022 年 9 月,Lightbend Inc. 改变了 Akka 的许可证模式,从 Apache 2.0 许可证切换到 商业来源许可证 (BSL) 1.1。
此变更从 Akka 2.7 和 Akka HTTP 10.4 开始生效。
- Lightbend 的公告 标题为“为什么我们要更改 Akka 的许可证”。
- Akka 2.7.0 和 Akka HTTP 10.4.0,发布于 2022 年 10 月 26 日。
- InfoQ 文章 标题为“Lightbend 更改 Akka 许可证,不再开源”。
- Akka 定价 在某些情况下可能需要支付许可证费用。
- Akka 许可证常见问题解答
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 Scala 或 Play 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.9 和 Play 3.0 提供相同的功能并接收并行维护,受益于相同的增强功能和错误修复。
§您的选择总结
- 使用 Play 2.9 时:使用我们的 Play Scala 或 Play Java 更新指南,升级到 BSL 许可下的较新 Akka 和 Akka HTTP 版本。
- 过渡到 Play 3.0:它用 Pekko 和 Pekko HTTP 替换了 Akka 和 Akka HTTP。
- 此过渡不需要重写您的应用程序;您只需要替换
akka.*
导入和配置键。
- 此过渡不需要重写您的应用程序;您只需要替换
- 使用 Play 2.9 时的替代方案:坚持使用 Play 附带的默认 Akka 和 Akka HTTP 版本,并选择
- 从 Akka HTTP 切换到 Netty 服务器后端(请记住,Play 2.9 仍然会在后台使用 Akka 2.6)。
- 继续使用它们,但要注意这可能会导致安全问题,因为它们不再接收安全补丁。
§停止维护 (EOL) 日期
- 所有早于 Play 2.8 的版本都已停止维护,不再接收更新。
- Play 2.8 将于 2024 年 5 月 31 日停止维护。在此日期之前,Play 2.8 仅接收安全升级。以下值得注意的库将不再自动升级(尽管您可以根据需要手动升级)
- Play 3.0 和 Play 2.9:在后续 2.x 或 3.x 版本发布后的 12 个月内将提供安全更新。但是,我们将在 2024 年 9 月评估 Play 2.x 系列维护的持续时间。我们打算在此之前发布至少一个新的主要 Play 2.x 版本(2.10),其中包含新功能和升级的依赖项。在任何时候,如果我们决定不继续 2.x 系列,我们将维护最后一个 2.x 版本另外 12 个月,以确保它继续接收安全更新。
如果您正在考虑使用 Play 2.9(使用 BSL 许可的 Akka 和 Akka HTTP),我们想通知您 Play 核心团队资源有限。您可能想考虑成为高级赞助商以帮助维持 2.x 系列。否则,如果对 2.x 系列的兴趣下降,我们可能需要在某个时候停止它。
下一步:Play 版本
在此文档中发现错误?此页面的源代码可以在 此处 找到。阅读完 文档指南 后,请随时贡献拉取请求。有疑问或建议要分享?转到 我们的社区论坛 与社区开始对话。