Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Play Framework

From Wikipedia, the free encyclopedia
Open-source web framework written in Scala
icon
This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources.
Find sources: "Play Framework" – news ·newspapers ·books ·scholar ·JSTOR
(September 2010) (Learn how and when to remove this message)
Play Framework
DeveloperCommunity
Initial release2007 (2007)
Stable release
3.0.9[1] Edit this on Wikidata / 11 September 2025; 5 months ago (11 September 2025)
Written inScala
Available inEnglish
TypeWeb application framework
LicenseApache License 2.0
Websiteplayframework.com
RepositoryPlay Repository

Play Framework is anopen-sourceweb application framework which follows themodel–view–controller (MVC)architectural pattern. It is written inScala and usable from other programming languages that are compiled toJVMbytecode, e.g.Java. It aims to optimize developer productivity by usingconvention over configuration, hot code reloading and display of errors in the browser.[2]

Support for theScala programming language has been available since version 1.1 of the framework.[3] In version 2.0, the framework core was rewritten in Scala. Build and deployment was migrated toSBT, andtemplates use Scala[4] instead ofApache Groovy.

History

[edit]

Play was created by software developer Guillaume Bort, while working at Zengularity SA (formerly Zenexity).[5] Although the early releases are no longer available online, there is evidence of Play existing as far back as May 2007.[6] In 2007, pre-release versions of the project were available to download from Zenexity's website.[7]

Version history
VersionDateNotes
Unsupported: 1.0May 2008The first published code for 1.0 appeared onLaunchpad.[8] This was followed by a full 1.0 release in October 2009.[9]
Unsupported: 1.1November 2010Released after a move from Launchpad toGitHub. It included a migration fromApache MINA toJBoss Netty, Scala support, nativeGlassFish container, an asynchronousweb services library,OAuth support,HTTPS support and other features.[10]
Unsupported: 1.2April 2011It included dependency management withApache Ivy, support forWebSocket, integrated database migration (reversion was not implemented[11]), a switch to theH2 database as the default development database and other features.[12]
Unsupported: 1.3January 15, 2015libraries upgraded (a.o. netty, hibernate, etc.), added multiple databases support and included customisable template name resolving.
Unsupported: 1.4October 30, 2015Compatible to Java 7 and removed support for Java 6. Added ability to define enabled ssl protocols.
Unsupported: 1.5September 29, 2017Upgraded to Hibernate 5.x. Dropped support for java version prior to 1.8.
Unsupported: 1.6March 15, 2021Compatible to Java 14, libraries upgraded
Unsupported: 1.7April 3, 2022Compatible to Java 17, libraries upgraded, dropped support for java version prior to 11, Play scripts upgrade to Python 3
Unsupported: 2.0March 13, 2012Sadek Drobi joined Guillaume Bort late 2011 to create Play 2.0[13] in conjunction withTypesafe Stack 2.0.[14]
Unsupported: 2.1February 6, 2013Upgraded to Scala 2.10 and introduced, among other new features, modularization, a new JSON API, filters and RequireJS support.[15]
Unsupported: 2.2September 20, 2013Upgraded support for SBT to 0.13, better support for buffering, built in support for gzip and newstage anddist tasks with support for native packaging on several platforms such as OS X (DMG), Linux (RPM, DEB), and Windows (MSI) as well as zip files.
Unsupported: 2.3May 30, 2014Introducing the Activator command, better tooling for static assets, support for Java 8 and Scala 2.11, better performance, Web Service enhancement and support to integrate Actors and Web Sockets.
Unsupported: 2.4May 26, 2015WithDependency injection out of the box, the possibility to embed Play inside other applications, improved Java 8 support,HikariCP as the default connection pool and better testing APIs.
Unsupported: 2.5March 29, 2016Switched from Iteratees toAkka Streams for all asynchronous IO and streaming, replaced custom functional types with Java 8 types (such asCompletionStage andOptional), introduced equivalent Java APIs for features that previously only existing in the Scala API, such as implementing filters and custom body parsers and with a 20% performance increase.
Unsupported: 2.6June 23, 2017UsingAkka HTTP as the default server backend, experimentalHTTP/2 support, Scala 2.12 support, no moreglobal state under the hood,JSON Web Token format for cookies, improved security and configuration improvements.
Unsupported: 2.7February 1, 2019Scala 2.13 support, support forCaffeine as underlying cache implementation, updated HikariCP andGuice versions, improved form validation and file uploading functions.[16]
Unsupported: 2.8December 13, 2019Java 11 support, Updated Akka, Jackson, support pre-seek sources for range results[17]
Latest version:2.9October 25, 2023[18]Scala 3, Java 17, and Java 21 support.[19]
Latest version:3.0October 25, 2023[20]Because Akka is no longer open source, Play switched from Akka to Apache Pekko.[21]
Legend:
Unsupported
Supported
Latest version
Preview version
Future version

Motivation

[edit]

Play is heavily inspired byASP.NET MVC,Ruby on Rails andDjango and is similar to this family of frameworks. Play web applications can be written in Scala or Java, in an environment that may be lessJava Enterprise Edition-centric. Play uses no Java EE constraints. This can make Play simpler to develop compared to other Java-centric platforms.[22]

Although Play 1.x could also be packaged asWAR files to be distributed to standard Java EEapplication servers,[23] Play 2.x applications are now designed to be run using the built-inAkka HTTP orNetty web servers exclusively.

Major differences from Java frameworks

[edit]
  • Stateless: Play 2 is fullyRESTful – there is no Java EE session per connection.
  • Integrated unit testing:JUnit andSelenium support is included in the core.
  • API comes with most required elements built-in.
  • Asynchronous I/O: due to using Akka HTTP as its web server, Play can service long requests asynchronously rather than tying up HTTP threads doing business logic like Java EE frameworks that don't use the asynchronous support offered by Servlet 3.0.[24]
  • Modular architecture: like Ruby on Rails and Django, Play comes with the concept of modules.
  • Native Scala support: Play 2 uses Scala internally but also exposes both a Scala API, and a Java API that is deliberately slightly different to fit in with Java conventions, and Play is completely interoperable with Java.

Testing framework

[edit]

Play provides integration with test frameworks forunit testing andfunctional testing for both Scala and Java applications. For Scala, integrations withScalatest and Specs2 are provided out-of-the-box and, for Java, there is integration withJUnit 4. For both languages, there is also integration withSelenium (software).SBT is used to run the tests and also to generate reports. It is also possible to use code coverage tools by using sbt plugins such asscoverage orjacoco4sbt.

Usage

[edit]

In August 2011,Heroku announced native support for Play applications on itscloud computing platform.[25] This followed module-based support for Play 1.0 onGoogle App Engine, and documented support onAmazon Web Services.[26]

As of October 2013[update], the Play Framework was the most popular Scala project onGitHub.[27]

In July 2015, Play was the 3rd most popular Scala library in GitHub, based on 64,562 Libraries. 21.3% of the top Scala projects used Play as their framework of choice.[28]

Corporate users of the Play Framework have includedCoursera,HuffPost,Hootsuite,Janrain,LinkedIn, andConnectifier.[29]

See also

[edit]

Literature

[edit]

References

[edit]
  1. ^"Release 3.0.9". 11 September 2025.
  2. ^"Playing with Play Framework for Java - @codemonkeyism".Codemonkeyism.com. 22 March 2010. Archived fromthe original on 29 May 2010. Retrieved31 July 2018.
  3. ^"Play framework in practice - Devoxx09 - Devoxx". 13 October 2009. Archived fromthe original on 2009-10-13. Retrieved31 July 2018.
  4. ^"playframework/twirl".GitHub. Retrieved31 July 2018.
  5. ^Bort, Guillaume."guillaume bort – software designer".guillaume.bort.fr. Retrieved31 July 2018.
  6. ^"Google Groups".groups.google.com. Retrieved31 July 2018.
  7. ^"Play!". 29 October 2007. Archived from the original on 2007-10-29. Retrieved31 July 2018.
  8. ^"~play-developers/play/1.0 : revision 1".Bazaar.launchpad.net. Retrieved31 July 2018.
  9. ^"Downloads".Playframework.org. Archived fromthe original on 17 January 2013. Retrieved31 July 2018.
  10. ^"releasenotes-1.1 - 1.1".Playframework.org. Archived fromthe original on 6 June 2012. Retrieved31 July 2018.
  11. ^"Modules".Playframework.org. Archived fromthe original on 4 April 2012. Retrieved31 July 2018.
  12. ^"releasenotes-1.2 - 1.2".Playframework.org. Archived fromthe original on 22 March 2012. Retrieved31 July 2018.
  13. ^"Philosophy - 2.0".Playframework.org. Archived fromthe original on 26 May 2012. Retrieved31 July 2018.
  14. ^"Introducing Typesafe Stack 2.0 - @lightbend".Blog.typesafe.com. Retrieved31 July 2018.
  15. ^"Highlights - 2.1.0".Playframework.com. Retrieved31 July 2018.
  16. ^"Highlights - 2.7.x".Playframework.com. Retrieved3 March 2019.
  17. ^"Highlights - 2.8.x".Playframework.com. Retrieved29 February 2020.
  18. ^Release 📣 Play 2.9.0 · playframework/playframework
  19. ^"Highlights29 - 3.0.x".playframework.com. Retrieved8 November 2023.
  20. ^Release 📣 Play 3.0.0 · playframework/playframework
  21. ^"Highlights30 - 3.0.x".playframework.com. Retrieved8 November 2023.
  22. ^Play! Framework UsabilityArchived 2011-07-13 at theWayback Machine
  23. ^"Thomas Heute's Blog: Play Framework on JBoss AS 7 -JBoss Developer".community.jboss.org. Retrieved31 July 2018.
  24. ^"Play framework and async I/O".engineering.linkedin.com. Retrieved31 July 2018.
  25. ^"Play! on Heroku".Blog.heroku.com. 24 August 2016. Retrieved31 July 2018.
  26. ^"Play-ing with Amazon RDS".Ibm.com. 19 July 2011. Retrieved31 July 2018.
  27. ^"GitHub: Search stars>1".GitHub. Retrieved5 October 2013.
  28. ^"The Top 100 Scala Libraries in 2015 – Based on 64,562 GitHub Libraries>1". Archived fromthe original on 15 August 2015. Retrieved19 July 2015.
  29. ^Inc, Lightbend."Blog Posts | play-framework | @lightbend".Lightbend. Retrieved2022-09-11.{{cite web}}:|last= has generic name (help)
  30. ^"Introducing the Play Framework".The-play-book.co.uk. Archived fromthe original on 17 May 2014. Retrieved31 July 2018.
  31. ^"Play Framework Cookbook - PACKT Books".Packtpub.com. Archived fromthe original on 13 March 2014. Retrieved31 July 2018.

External links

[edit]
.NET
C++
ColdFusion
Common Lisp
Haskell
Java
JavaScript
Back end
Server-side
Full-stack
Front end
Client-side
Perl
PHP
Python
Ruby
Rust
Scala
Smalltalk
Other languages
Retrieved from "https://en.wikipedia.org/w/index.php?title=Play_Framework&oldid=1331405958"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp