Play Framework

Play Framework
開発元 コミュニティ(2021年10月20日までLightbendだった)
初版 2007年 (2007)
最新版
ウィキデータを編集
安定版
3.0.9 / 2025年9月11日 (13か月前)
リポジトリ ウィキデータを編集
プログラミング
言語
Scala
サポート状況 開発中
種別 Webアプリケーションフレームワーク
ライセンス Apache-2.0
公式サイト www.playframework.com ウィキデータを編集
テンプレートを表示

Play Framework(プレイ・フレームワーク)は、ScalaとJava言語で書かれたオープンソースのWebアプリケーションフレームワークである。Model View Controller (MVC) アーキテクチャを採用しており、設定より規約やホットリローディング、エラーのブラウザ上への表示といった方針により、開発者の生産性を上げることを目的としている。

Scala言語のサポートはバージョン1.1より行われていたが、バージョン2.0ではフレームワークのコア自体がScalaにより書き直されている。ビルドとデプロイメントにもScalaベースのビルドツールであるsbtが使用されており、テンプレートエンジンも以前のGroovyの代わりにScalaが採用されている。

歴史

Play FrameworkはZenexity社のソフトウェア開発者であるGuillaume Bortにより作成された。しかしこの初期のリリースは外部には公開されておらず、インターネット上で確認できる最も古い情報は2007年5月のものである。2007年になり、プレリリースバージョンが初めてZenexity社のサイトにて公開された。

翌2008年5月になって、バージョン1.0の元となるコードがLaunchpadにて公開された 1.0が完全にリリースされるのは、2009年10月のことである。

その後LaunchpadからGitHubへの移行を経て、2010年11月にPlay 1.1がリリースされた。1.1ではコンポーネントがApache MINA(英語版)からJBoss Netty(英語版)へと変更されており、またScala言語のサポートや、GlassFishコンテナへの対応、非同期Webサービスライブラリ、OAuth認証、HTTPSのサポートなどが行われた。

2011年4月にリリースされたPlay 1.2では、依存性管理ツールであるApache Ivy(英語版)が組み込まれるとともに、WebSocketのサポートや、DBマイグレーションの統合(ただしリバージョンは未対応)、H2 Databaseへの変更などが行われた。

2011年後半にはPlay 2.0の開発に向けSadek Drobiが加わっている。2012年3月13日にリリースされた2.0では、Scalaの開発環境であるTypesafe Stackと結びついている。

2013年2月6日にリリースされたPlay 2.1では、Scalaが2.10へとアップデートされるとともに、モジュール化や新しいJSON API、フィルタ、それにRequireJSがサポートされた。

2013年9月20日にリリースされたPlay 2.2では、sbtが0.13にアップデートされるとともに、バッファリングやgzip圧縮、それにいくつかのプラットフォーム用のパッケージングタスク(OS X (DMG), Linux (RPM, deb), Windows (MSI) など)がサポートされた。

2021年10月20日、それまで中心的に開発していた Lightbend 社が Play Framework の開発から撤退すると発表した。

2023年10月25日、Play Framework 3.0.0がリリースされた。Play Frameworkは2.xまではLightbendが開発していたAkkaを使用していたが、Akkaが2022年9月よりオープンソースでは無くなったため、AkkaからフォークしたオープンソースのApache Pekkoに切り替わった。

特徴

Play Frameworkは、Ruby on RailsとDjangoから大きな影響を受けた、これらと似た同種のフレームワークである。PlayのWebアプリケーションはJava環境で動作するが、Java標準のWebアプリケーション仕様であるJakarta EEの中核機能は必要としない。PlayはJakarta EEの仕様に準拠しないが、その代わりにJakarta EE準拠のプラットフォームと比較してシンプルに開発を行うことができる。

Play Frameworkのアプリケーションは組み込みのNetty(英語版) Webサーバーを使用して実行するよう設計されている。しかし、開発したアプリケーションをWARパッケージにまとめ、Jakarta EEのアプリケーションサーバで動作させることも可能である。

他のフレームワークとの比較

他のJavaフレームワークと比べると、以下のような特徴を持つ

コンポーネント

Play 2.0はいくつかのJavaの一般的なライブラリを使用している。

Play Frameworkには以下のような機能が含まれている。

導入事例

Play Frameworkのメーリングリストには9,000名を超える購読者が登録されている。Playは地方政府や企業のイントラネット、モバイル向けWebサイトやOSSといった幅広いプロジェクトで使用されている。

2013年10月現在、Play FrameworkはGitHubにおける最も人気のあるScalaプロジェクトとなっている。

また、いくつかの著名なWebサイトがPlay Frameworkを使用していることを明らかにしている。

2010年12月には、Play Frameworkを扱った初の電子書籍がリリースされた。この書籍は後に紙媒体でも刊行されている。2011年8月には2冊目の書籍も刊行されている。

2011年8月、クラウドコンピューティングプラットフォームのHerokuはPlayのアプリケーションをネイティブサポートすることを発表した。これはGoogle App EngineにおけるPlay 1.0(Play 2.xではない)のモジュールベースでのサポート、Amazon Web Servicesでのドキュメントによるサポートに続くものであった。

2013年7月には クラウドコンピューティングプラットフォームのJelastic(英語版)も、Play 2を同環境で使用するためのチュートリアルを公開している。

脚注

  1. ↑ "Release 3.0.9" (2025年9月11日).
  2. ↑ Playing with Play Framework for Java
  3. ↑ Nicolas Leroux at Devoxx
  4. ↑ guillaume bort ★ software designer
  5. ↑ play-framework | Google Group
  6. ↑ Play!
  7. ↑ ~play-developers/play/1.0 : revision 1
  8. ↑ Play framework - downloads
  9. ↑ Play 1.1 -- Release notes
  10. ↑ Community Contributed Extensions
  11. ↑ Play 1.2 -- Release notes
  12. ↑ Play 2.0 -- Philosophy
  13. ↑ http://blog.typesafe.com/introducing-typesafe-stack-20
  14. ↑ http://www.playframework.com/documentation/2.1.0/Highlights
  15. ↑ On the future of Play Framework | Lightbend
  16. ↑ “Highlights30 - 3.0.x”. playframework.com. 2023年11月7日閲覧。
  17. ↑ Play! Framework Usability
  18. ↑ Play Framework on JBoss AS 7
  19. ↑ Play framework and async I/O
  20. ↑ Play's Google Group
  21. ↑ “GitHub: Search stars>1”. 2013年10月5日閲覧。
  22. ↑ Testimonials
  23. ↑ http://betacs.pro/blog/2013/08/03/deploying-play-apps/
  24. ↑ Typesafe
  25. ↑ Introducing the Play! Framework
  26. ↑ Play Framework Cookbook
  27. ↑ Play! on Heroku
  28. ↑ Java development 2.0: Play-ing with Amazon RDS
  29. ↑ Play 2 Framework on Jelastic

外部リンク