Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 History  





2 Motivation  





3 Major differences from Java frameworks  





4 Testing framework  





5 Usage  





6 See also  





7 Literature  





8 References  





9 External links  














Play Framework






العربية
Čeština
فارسی
Français

Italiano

Polski
Русский
Türkçe
Українська
Tiếng Vit

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


Play Framework
Developer(s)Community
Initial release2007 (2007)
Stable release

3.0.3[1] Edit this on Wikidata / 7 May 2024; 58 days ago (7 May 2024)

RepositoryPlay Repository
Written inScala
Available inEnglish
TypeWeb application framework
LicenseApache License 2.0
Websiteplayframework.com

Play Framework is an open-source web application framework which follows the model–view–controller (MVC) architectural pattern. It is written in Scala and usable from other programming languages that are compiled to JVM bytecode, e.g. Java. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser.[2]

Support for the Scala 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 to SBT, and templates use Scala[4] instead of Apache 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
Version Date Notes
Old version, no longer maintained: 1.0 May 2008 The first published code for 1.0 appeared on Launchpad.[8] This was followed by a full 1.0 release in October 2009.[9]
Old version, no longer maintained: 1.1 November 2010 Released after a move from Launchpad to GitHub. It included a migration from Apache MINAtoJBoss Netty, Scala support, native GlassFish container, an asynchronous web services library, OAuth support, HTTPS support and other features.[10]
Old version, no longer maintained: 1.2 April 2011 It included dependency management with Apache Ivy, support for WebSocket, integrated database migration (reversion was not implemented[11]), a switch to the H2 database as the default development database and other features.[12]
Old version, no longer maintained: 1.3 January 15, 2015 libraries upgraded (a.o. netty, hibernate, etc.), added multiple databases support and included customisable template name resolving.
Old version, no longer maintained: 1.4 October 30, 2015 Compatible to Java 7 and removed support for Java 6. Added ability to define enabled ssl protocols.
Old version, no longer maintained: 1.5 September 29, 2017 Upgraded to Hibernate 5.x. Dropped support for java version prior to 1.8.
Old version, no longer maintained: 1.6 March 15, 2021 Compatible to Java 14, libraries upgraded
Old version, no longer maintained: 1.7 April 3, 2022 Compatible to Java 17, libraries upgraded, dropped support for java version prior to 11, Play scripts upgrade to Python 3
Old version, no longer maintained: 2.0 March 13, 2012 Sadek Drobi joined Guillaume Bort late 2011 to create Play 2.0[13] in conjunction with Typesafe Stack 2.0.[14]
Old version, no longer maintained: 2.1 February 6, 2013 Upgraded to Scala 2.10 and introduced, among other new features, modularization, a new JSON API, filters and RequireJS support.[15]
Old version, no longer maintained: 2.2 September 20, 2013 Upgraded support for SBT to 0.13, better support for buffering, built in support for gzip and new stage and dist 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.
Old version, no longer maintained: 2.3 May 30, 2014 Introducing 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.
Old version, no longer maintained: 2.4 May 26, 2015 With Dependency 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.
Old version, no longer maintained: 2.5 March 29, 2016 Switched from Iteratees to Akka Streams for all asynchronous IO and streaming, replaced custom functional types with Java 8 types (such as CompletionStage and Optional), 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.
Old version, no longer maintained: 2.6 June 23, 2017 Using Akka HTTP as the default server backend, experimental HTTP/2 support, Scala 2.12 support, no more global state under the hood, JSON Web Token format for cookies, improved security and configuration improvements.
Old version, no longer maintained: 2.7 February 1, 2019 Scala 2.13 support, support for Caffeine as underlying cache implementation, updated HikariCP and Guice versions, improved form validation and file uploading functions.[16]
Older version, yet still maintained: 2.8 December 13, 2019 Java 11 support, Updated Akka, Jackson, support pre-seek sources for range results[17]
Current stable version: 2.9 October 25, 2023[18] Scala 3, Java 17, and Java 21 support.[19]
Current stable version: 3.0 October 25, 2023[20] Because Akka is no longer open source, Play switched from Akka to Apache Pekko.[21]

Legend:

Old version

Older version, still maintained

Latest version

Latest preview version

Future release

Motivation[edit]

Play is heavily inspired by ASP.NET MVC, Ruby on Rails and Django and is similar to this family of frameworks. Play web applications can be written in Scala or Java, in an environment that may be less Java 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 as WAR files to be distributed to standard Java EE application servers,[23] Play 2.x applications are now designed to be run using the built-in Akka HTTPorNetty web servers exclusively.

Major differences from Java frameworks[edit]

Testing framework[edit]

Play provides integration with test frameworks for unit testing and functional testing for both Scala and Java applications. For Scala, integrations with Scalatest and Specs2 are provided out-of-the-box and, for Java, there is integration with JUnit 4. For both languages, there is also integration with Selenium (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 as scoverageorjacoco4sbt.

Usage[edit]

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

As of October 2013, the Play Framework was the most popular Scala project on GitHub.[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 included Coursera, HuffPost, Hootsuite, Janrain, LinkedIn, and Connectifier.[29]

See also[edit]

Literature[edit]

References[edit]

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


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Play_Framework&oldid=1183996951"

    Categories: 
    Java platform
    Web frameworks
    Free software programmed in Java (programming language)
    Free software programmed in Scala
    2007 software
    Software using the Apache license
    Hidden categories: 
    Webarchive template wayback links
    CS1 errors: generic name
    Articles with short description
    Short description matches Wikidata
    Articles lacking reliable references from September 2010
    All articles lacking reliable references
    Articles containing potentially dated statements from October 2013
    All articles containing potentially dated statements
     



    This page was last edited on 7 November 2023, at 18:55 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki