ドキュメント

§PlayにおけるAkkaのライセンス変更への対応

2022年9月、Lightbend Inc.がAkkaのライセンスモデルをApache 2.0ライセンスからBusiness Source License (BSL) 1.1に変更したことをご存知かもしれません。
この変更はAkka 2.7とAkka HTTP 10.4から有効になりました。

Play 2.xバージョンは内部的にAkkaを使用しており、Play Frameworkのドキュメントでは、AkkaクラスやAPIと対話する方法も提供されています。さらに、Nettyバックエンドに加えて、Akka HTTPサーバーバックエンドもPlay 2.xで使用できます。

多くの人が、PlayがBSLライセンスの新しいAkkaバージョンに切り替えた場合、自社がライセンス料金を支払う必要があるかどうかについて懸念していました。これらの懸念に対応するため、LightbendはPlay Framework向けの“追加使用許諾”を導入しました。これにより、Play 2.x内でAkkaを使用することが許可され、Play Frameworkユーザーは本番環境を含むソースコードで特定のAkka機能を利用できます。ただし、Play Frameworkユーザーとプレミアムスポンサーの両方から、これらの例外が狭すぎるという懸念が表明されました。つまり、公式のPlay Frameworkドキュメントに記載されていない方法でPlay 2.xアプリケーションでAkkaを使用すると、既にライセンスの取得が必要になる可能性があります。そのような使用事例が例外の範囲外に該当するのは非常に簡単です。たとえば、(WebSocketを目的としない)`ActorSystem`を注入するだけでも、新しいBSLライセンスが適用され、Akkaの完全なライセンスモデルが適用されることになります。

私たちの最優先事項は、Play Frameworkユーザーが知らず知らずのうちにBSLライセンススキームの対象とならないようにすること、そしてPlay Frameworkが非オープンソースライブラリに依存しないようにすることです。そのため、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月にサポート終了(EOL)に達しました

§Apache PekkoとPlay 3.0の紹介

2023年10月、Play 3.0をリリースしました。このリリースでは、AkkaとAkka HTTPをPekkoとPekko 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リリース


このドキュメントにエラーを発見しましたか?このページのソースコードはこちらにあります。ドキュメントガイドラインをお読みになった後、プルリクエストを自由に貢献してください。ご質問やアドバイスがありましたら、コミュニティフォーラムでコミュニティと対話してください。