Comparison of server-side web frameworks

{{Short description|none}}

{{ProgLangCompare}}

This is a comparison of notable web frameworks, software used to build and deploy web applications.

General

Basic information about each framework.

Systems listed on a light purple background are no longer in active development.

=ASP.NET=

{{see also|ASP.NET|List of CLI languages}}

{{sort-under}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh}}| ASP.NET Dynamic Data

|

|

|

{{rh2}}| Base One Foundation Component Library (BFC)

| 7.51

| 2018-06-01

| {{proprietary|Proprietary}}

{{rh}}| Component-based Scalable Logical Architecture (CSLA)

| 4.11.2

| 2019-07-31{{cite web|url=https://github.com/MarimerLLC/csla/releases/tag/v4.11.2|title=Version 4.11.2|publisher=Github|access-date=4 September 2019}}

| {{free|MIT}}

{{rh2}}| MonoRail

| 2.1

| 2011-03-17{{cite web|url=http://www.castleproject.org/download/|title=Download - Castle Project|website=castleproject.org|access-date=2015-01-02|archive-date=2017-06-07|archive-url=https://web.archive.org/web/20170607065243/http://www.castleproject.org/download/|url-status=live}}

| {{free|Apache}}

=C++=

{{see also|C++}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh2}}| CppCMS

| 1.2.1

| 2018-05-18{{cite web |url=http://blog.cppcms.com/ |title=CppCMS Blog |publisher=Blog.cppcms.com |access-date=2023-11-04 |archive-date=2013-08-03 |archive-url=https://web.archive.org/web/20130803035020/http://blog.cppcms.com/ |url-status=live }}

| {{free|MIT}}

{{rh}}| Drogon

| 1.9.5

| 2024-06-08{{Cite web |title=drogonframework/drogon |url=https://github.com/drogonframework/drogon/tags |access-date=2024-07-10 |website=GitHub |language=en}}

| {{free|MIT}}

{{rh}}| Poco

| {{POCO C++ Libraries version}}

| {{POCO C++ Libraries version|releasedate}}

| Boost Software License

{{rh}}| Wt

| 4.10.4

| 2024-03-06{{Cite web |title=Wt: Release notes |url=https://www.webtoolkit.eu/wt/doc/reference/html/Releasenotes.html |access-date=2024-07-10 |website=www.webtoolkit.eu |archive-date=2017-08-06 |archive-url=https://web.archive.org/web/20170806074153/https://www.webtoolkit.eu/wt/doc/reference/html/Releasenotes.html |url-status=live }}

| GPL, Proprietary

=ColdFusion Markup Language (CFML)=

{{see also|ColdFusion Markup Language|Adobe ColdFusion}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh}}| ColdBox Platform

| {{ColdBox Platform version}}

| {{ColdBox Platform version|releasedate}}

| {{free|Apache v2}}

=Elixir=

{{see also| Elixir (programming language)}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh}}|Phoenix

| {{wikidata|property|reference|edit|Q55629889|P348}}

| {{wikidata|qualifier|raw|Q55629889|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q55629889|P348|P577}}}}

| {{free|MIT License}}

=Haskell=

{{see also|Haskell}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh}}| Snap

| 1.1.3.2{{cite web|url=https://github.com/snapframework/snap/tags|title= snapframework/snap |first=|last=|website=github.com}}

| 2023-07-19

| {{free|BSD-3}}

{{rh}}| Yesod

| {{Yesod (web framework) version}}

| {{Yesod (web framework) version|releasedate}}

| {{free|MIT License}}

=Java=

{{see also|Java (programming language)|Java (software platform)}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh2}}| Apache Click

| 2.3.0

| 2011-03-27

| {{free|Apache 2.0}}

{{rh}}| Apache OFBiz

| {{wikidata|property|reference|edit|Q616979|P348}}

| {{wikidata|qualifier|raw|Q616979|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q616979|P348|P577}}}}

| {{free|Apache 2.0}}

{{rh2}}| Apache Shale

| 1.0.4

| 2007-12-19

| {{free|Apache}}

{{rh}}| Apache Sling

| 12

| 2022-03-18

| {{free|Apache 2.0}}

{{rh}}| Apache Struts

| {{wikidata|property|reference|edit|Q900957|P348}}

| {{wikidata|qualifier|raw|Q900957|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q900957|P348|P577}}}}

| {{free|Apache 2.0}}

{{rh}}| Apache Tapestry

| {{wikidata|property|reference|edit|Q617093|P348}}

| {{wikidata|qualifier|raw|Q617093|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q617093|P348|P577}}}}

| {{free|Apache 2.0}}

{{rh}}| Apache Wicket

| {{wikidata|property|reference|edit|Q617162|P348}}

| {{wikidata|qualifier|raw|Q617162|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q617162|P348|P577}}}}

| {{free|Apache 2.0}}

{{rh2}}| AppFuse

| 3.5.0

| 2015-02-20

| {{free|Apache 2.0}}

{{rh}}| Eclipse Mojarra (Jakarta Faces RI)

| {{wikidata|property|reference|edit|Q729427|P348}}

| {{wikidata|qualifier|raw|Q729427|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q729427|P348|P577}}}}

| {{free|CDDL, GNU GPL 2, Apache 2.0}}

{{rh}}| Eclipse RAP

| 4.1

| 2024-12-04

| {{free|Eclipse}}

{{rh}}| Grails

| {{wikidata|property|reference|edit|Q848544|P348}}

| {{wikidata|qualifier|raw|Q848544|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q848544|P348|P577}}}}

| {{free|Apache}}

{{rh}}| Google Web Toolkit

| 2.12.2

| 2025-03-03

| {{free|Apache 2.0}}

{{rh2}}| JBoss Seam

| 3.1.0 final

| 2012-01-13

| {{free|GNU LGPL}}

{{rh}}| JWt

| {{wikidata|property|reference|edit|Q17061295|P348}}

| {{wikidata|qualifier|raw|Q17061295|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q17061295|P348|P577}}}}

| GPL, Proprietary

{{rh}}| Netty

| {{wikidata|property|reference|edit|Q6107820|P348}}

| {{wikidata|qualifier|raw|Q6107820|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q6107820|P348|P577}}}}

| Apache License 2.0

{{rh2}}| OpenLaszlo

| 4.9.0

| 2010-10-21

| {{free|CPL}}

{{rh}}| Oracle ADF

| 12.2.1.4

| 2019-10-09

| Oracle Technology Network Developer License

{{rh}}| Play

| {{wikidata|property|reference|edit|Q3392101|P348}}

| {{wikidata|qualifier|raw|Q3392101|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q3392101|P348|P577}}}}

| {{free|Apache 2.0}}

{{rh}}| Spring

| {{wikidata|property|reference|edit|Q720314|P348}}

| {{wikidata|qualifier|raw|Q720314|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q720314|P348|P577}}}}

| {{free|Apache 2.0}}

{{rh2}}| Stripes

| 1.6.0

| 2015-07-23

| {{free|Apache}}

{{rh}}| Vaadin

| {{wikidata|property|reference|edit|Q1400683|P348}}

| {{wikidata|qualifier|raw|Q1400683|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q1400683|P348|P577}}}}

| {{free|Apache 2.0}}

{{rh}}| Wavemaker

| 11.6.0{{Cite web |date=2024-03-04 |title=WaveMaker 11.6.0 - Release date: 03 March 2024 {{!}} WaveMaker Docs |url=https://www.wavemaker.com/learn/wavemaker-release-notes/v11-6-0 |access-date=2024-03-06 |website=www.wavemaker.com |language=en}}

| 2024-03-03

| {{free|Apache}}

{{rh2}}| WebObjects

| 5.4.3

| 2008-09-15

| {{proprietary}}

=JavaScript=

{{see also|JavaScript|Comparison of JavaScript-based web frameworks}}

class="wikitable sortable sort-under" style="font-size: 90%"
ProjectCurrent stable versionRelease dateLicense
{{rh}} class="table-rh" |Express.js

| {{wikidata|property|reference|edit|Q16878131|P348}}

| {{wikidata|qualifier|raw|Q16878131|P348|P577}}; {{time ago|{{wikidata|qualifier|raw|Q16878131|P348|P577}}}}

| {{free|MIT License}}

{{rh}} class="table-rh" |Fastify

| {{wikidata|property|reference|edit|Q131247600|P348}}

| {{wikidata|qualifier|raw|Q131247600|P348|P577}}; {{time ago|{{wikidata|qualifier|raw|Q131247600|P348|P577}}}}

| {{free|MIT License}}

{{rh}} class="table-rh" |Meteor

| {{wikidata|property|reference|edit|Q14246221|P348}}

| {{wikidata|qualifier|raw|Q14246221|P348|P577}}; {{time ago|{{wikidata|qualifier|raw|Q14246221|P348|P577}}}}

| {{free|MIT License}}

{{rh}}|NestJS

| {{wikidata|property|reference|edit|Q107015664|P348}}

| {{wikidata|qualifier|raw|Q107015664|P348|P577}}; {{time ago|{{wikidata|qualifier|raw|Q107015664|P348|P577}}}}

| {{free|MIT License}}

{{rh}}|Next.js

| {{wikidata|property|reference|edit|Q56062435|P348}}

| {{wikidata|qualifier|raw|Q56062435|P348|P577}}; {{time ago|{{wikidata|qualifier|raw|Q56062435|P348|P577}}}}

| {{free|MIT License}}

{{rh}}|Nuxt.js

| {{wikidata|property|reference|edit|Q55641291|P348}}

| {{wikidata|qualifier|raw|Q55641291|P348|P577}}; {{time ago|{{wikidata|qualifier|raw|Q55641291|P348|P577}}}}

| {{free|MIT License}}

{{rh}} class="table-rh" |Remix

| {{wikidata|property|reference|edit|Q125635483|P348}}

| {{wikidata|qualifier|raw|Q125635483|P348|P577}}; {{time ago|{{wikidata|qualifier|raw|Q125635483|P348|P577}}}}

| {{free|MIT License}}

{{rh}} class="table-rh" |Sails.js

| {{wikidata|property|reference|edit|Q25490941|P348}}

| {{wikidata|qualifier|raw|Q25490941|P348|P577}}; {{time ago|{{wikidata|qualifier|raw|Q25490941|P348|P577}}}}

| {{free|MIT License}}

{{rh}} class="table-rh" |SvelteKit

| {{wikidata|property|reference|edit|Q106156162|P348}}

| {{wikidata|qualifier|raw|Q106156162|P348|P577}}; {{time ago|{{wikidata|qualifier|raw|Q106156162|P348|P577}}}}

| {{free|MIT License}}

=Perl=

{{see also|Perl}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh2}}| Catalyst

| {{Catalyst (software) version}}

| {{Catalyst (software) version|releasedate}}

| Artistic, GPL

{{rh}}| Dancer

| {{Dancer (software) version}}

| {{Dancer (software) version|releasedate}}

| {{free|Artistic, GPL}}

{{rh2}}| Maypole

| 2.13

| 2008-04-18

| {{free|Artistic, GPL}}

{{rh}}| Mojolicious

| {{Mojolicious version}}

| {{Mojolicious version|releasedate}}

| Artistic

=PHP=

{{see also|PHP}}

class="wikitable sortable sort-under" style="font-size: 90%"
style="width:140pt;"| Project

! Start date

! style="width:90pt;"| Current stable version

! Release date

! License

{{rh}}| CakePHP

| 2005-08

| {{CakePHP version}}

| {{CakePHP version|releasedate}}

| {{free|MIT}}

{{rh}}| CodeIgniter

| 2006-02-28

| {{CodeIgniter version}}

| {{CodeIgniter version|releasedate}}

| {{free|MIT}}

{{rh}}| Fat-Free

| 2009-09

| {{Fat-Free Framework version}}

| {{Fat-Free Framework version|releasedate}}

| {{free|GPLv3}}

{{rh}}| FuelPHP

| 2011-08

| {{FuelPHP version}}

| {{FuelPHP version|releasedate}}

| {{free|MIT}}

{{rh}}| Gyroscope

| 2008-11-20

| 20.4{{cite web

| url = http://www.antradar.com/download.php

| title = Antradar Downloads

| date = 2023-11-24

| access-date = 2023-12-24

| website = antradar.com

| archive-date = 2023-11-29

| archive-url = https://web.archive.org/web/20231129194133/http://www.antradar.com/download.php

| url-status = live

}}

| 2023-11-24

| {{free|BSD}}

{{rh}}| Jamroom

| 2003-07-28

| {{Jamroom version}}

| {{Jamroom version|releasedate}}

| {{free|MPL}}

{{rh2}}| Kajona

| 2006

| 6.2{{cite web | url=https://github.com/kajona/kajonacms/releases | title=Releases | publisher=github.com | access-date=10 June 2017 | archive-date=29 July 2017 | archive-url=https://web.archive.org/web/20170729084856/https://github.com/kajona/kajonacms/releases | url-status=live }}

| 2017-06-08

| {{free|LGPLv2}}

{{rh}}| Laminas (formerly {{nowrap|Zend Framework}})

| 2006-03

| 3.8.0{{Cite web |title=Release 3.8.0 · laminas/laminas-mvc |url=https://github.com/laminas/laminas-mvc/releases/tag/3.8.0 |access-date=2025-06-19 |website=GitHub |language=en}}

| 2024-11-21

| {{free|New BSD}}

{{rh}}| Laravel

| 2011-07-31

| {{Laravel version}}

| {{Laravel version|releasedate}}

| {{free|MIT}}

{{rh}}| Li3 (Lithium)

| 2009-10

| {{Li3 (software) version}}

| {{Li3 (software) version|releasedate}}

| {{free|BSD}}

{{rh}}| Phalcon

| 2012-11-14

| 5.8.0{{cite web | url=https://github.com/phalcon/cphalcon/releases | title= phalcon/cphalcon | publisher=github.com | access-date = 2024-07-09}}

| 2024-07-09

| {{free|BSD}}

{{rh}}| Pop PHP

| 2012-03-19

| 5.5.0{{cite web | url=https://github.com/popphp/popphp-framework/releases | title=Releases - popphp/popphp-framework | publisher=github.com | date=2019-10-17 | access-date=2019-05-30 | archive-date=2020-10-20 | archive-url=https://web.archive.org/web/20201020131123/https://github.com/popphp/popphp-framework/releases | url-status=live }}

| 2025-02-12

| {{free|BSD Licence}}

{{rh}}| PRADO

| 2004-01

| {{PRADO (framework) version}}

| {{PRADO (framework) version|releasedate}}

| {{free|New BSD

{{cite web

| url = http://www.pradosoft.com/license/

| title = License of PRADO

| year = 2013

| access-date = 2013-10-16

| publisher = pradosoft.com

| archive-url = https://web.archive.org/web/20131016012055/http://www.pradosoft.com/license/

| archive-date = 2013-10-16

| url-status = dead

}}

}}

{{rh}}| SilverStripe

| 2007-02-03

| {{SilverStripe version}}

| {{SilverStripe version|releasedate}}

| {{free|BSD}}

{{rh}}| Smart.Framework

| 2015-02-01

| {{Smart Framework PHP version}}

| {{Smart Framework PHP version|releasedate}}

| {{free|BSD}}

{{rh}}| Symfony

| 2005-10

| {{Symfony version}}

| {{Symfony version|releasedate}}

| {{free|MIT}}

{{rh}}| Yii

| 2008-12-03

| {{Yii version}}

| {{Yii version|releasedate}}

| {{free|New BSD}}

=Python=

{{see also|Python (programming language)|List of Python software#Web frameworks}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh2}}| BlueBream

| {{wikidata|property|reference|edit|Q9302930|P348}}

| {{wikidata|qualifier|raw|Q9302930|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q9302930|P348|P577}}}}

| ZPL

{{rh}}| CherryPy

| {{wikidata|property|reference|edit|Q2635182|P348}}

| {{wikidata|qualifier|raw|Q2635182|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q2635182|P348|P577}}}}

| BSD

{{rh}}| CubicWeb

| {{wikidata|property|reference|edit|Q2839592|P348}}

| {{wikidata|qualifier|raw|Q2839592|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q2839592|P348|P577}}}}

| LGPL

{{rh}}| Django

| {{wikidata|property|preferred|references|edit|Q842014|P348|P548=Q2804309}}

| {{wikidata|qualifier|raw|preferred|single|Q842014|P348|P548=Q2804309|P577}}; {{Time ago|{{wikidata|qualifier|preferred|single|Q842014|P348|P577}}}}

| {{free|BSD}}

{{rh}}| FastAPI

| {{wikidata|property|reference|edit|Q101119404|P348}}

| {{wikidata|qualifier|raw|Q101119404|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q101119404|P348|P577}}}}

| {{free|MIT}}

{{rh}}| Flask

| {{wikidata|property|reference|edit|Q289281|P348}}

| {{wikidata|qualifier|raw|Q289281|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q289281|P348|P577}}}}

| {{free|BSD}}

{{rh}}| Google App Engine

| {{wikidata|property|reference|edit|Q454728|P348}}

| {{wikidata|qualifier|raw|Q454728|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q454728|P348|P577}}}}

|LGPL, Proprietary

{{rh2}}| Grok

| {{wikidata|property|reference|edit|Q5610141|P348}}

| {{wikidata|qualifier|raw|Q5610141|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q5610141|P348|P577}}}}

| ZPL

{{rh}}| Gunicorn

| {{wikidata|property|reference|edit|Q5618801|P348}}

| {{wikidata|qualifier|raw|Q5618801|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q5618801|P348|P577}}}}

| {{free|MIT}}

{{rh}}| Jam.py

| {{wikidata|property|reference|edit|Q97359958|P348}}

| {{wikidata|qualifier|raw|Q97359958|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q97359958|P348|P577}}}}

| {{free|BSD}}

{{rh2}}| Pyjs

| {{wikidata|property|reference|edit|Q7263063|P348}}

| {{wikidata|qualifier|raw|Q7263063|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q7263063|P348|P577}}}}

| {{free|Apache}}

{{rh2}}| Pylons

| {{wikidata|property|reference|edit|Q18285301|P348}}

| {{wikidata|qualifier|raw|Q18285301|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q18285301|P348|P577}}}}

| {{free|BSD}}

{{rh}}| Pyramid

| {{wikidata|property|reference|edit|Q2342759|P348}}

| {{wikidata|qualifier|raw|Q2342759|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q2342759|P348|P577}}}}

| {{free|BSD}}

{{rh}}| Tornado

| {{wikidata|property|reference|edit|Q1088546|P348}}

| {{wikidata|qualifier|raw|Q1088546|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q1088546|P348|P577}}}}

| Apache

{{rh2}}| TurboGears

| {{wikidata|property|reference|edit|Q937689|P348}}

| {{wikidata|qualifier|raw|Q937689|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q937689|P348|P577}}}}

| MIT, LGPL

{{rh}}| web2py

| {{wikidata|property|reference|edit|Q286180|P348}}

| {{wikidata|qualifier|raw|Q286180|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q286180|P348|P577}}}}

| LGPL3

{{rh}}| Zope 2

| {{wikidata|property|reference|edit|Q104238069|P348}}

| {{wikidata|qualifier|raw|Q104238069|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q104238069|P348|P577}}}}

| ZPL

=Ruby=

{{see also|Ruby (programming language)}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh}}| Padrino

| 0.14.4

| 2019-01-14{{cite web|url=https://padrinorb.com/blog/padrino-0-14-4/|title=Padrino 0.14.4 release|website=Padrino|access-date=5 September 2019}}

| {{free|MIT}}

{{rh}}| Ruby on Rails

| {{wikidata|property|reference|edit|Q190478|P348}}

| {{wikidata|qualifier|raw|Q190478|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q190478|P348|P577}}}}

| {{free|MIT}}

{{rh}}| Sinatra

| {{wikidata|property|reference|edit|Q657028|P348}}

| {{wikidata|qualifier|raw|Q657028|P348|P577}}; {{Time ago|{{wikidata|qualifier|raw|Q657028|P348|P577}}}}

| {{free|MIT}}

=Scala=

{{see also|Scala (programming language)}}

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Current stable version

! Release date

! License

{{rh}} class="table-rh" |Lift

| 3.4.3

| 2020-11-28

| Apache licence |Apache 2.0

{{rh}}| Play

| 2.8.8

| 2021-04-08

| Apache 2.0

{{rh}}| Scalatra

| 2.8.1

| 2021-09-25

| BSD

=Others=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

! Language

! Current stable version

! Release date

! License

{{rh2}}| AIDA/Web

| Smalltalk

| 6.7

| 2014-09-14

| {{free|MIT}}

{{rh}}| Oracle APEX

| PL/SQL

| 22.2

| 2022-11-10

| {{proprietary|Proprietary freeware}}

{{rh}}| Flex

| ActionScript, MXML

| 4.16.1

| 2019-11-23

| {{free|Apache}}

{{rh}}| Grails

| Groovy (JVM)

| 6.2.2{{Cite web |title=Introducing Grails Framework 6.2.2 Release |url=https://grails.org/blog/2024-11-20-introducing-grails-6-2-2.html |access-date=2024-12-29 |website=grails.org}}

| 2024-11-20

| {{free|Apache}}

{{rh2}}| Morfik

| C#, BASIC, Pascal, Java

| 3.0.8.1

| 2010-12-13

| {{proprietary|Proprietary freeware}}

{{rh2}}| Opa

| Opa

| 1.1.1

| 2013-04-16{{cite web |url=http://blog.opalang.org/2013/02/some-great-news-on-opa.html |title=The Opa Blog: Some great news on Opa |publisher=Blog.opalang.org |access-date=2013-08-18 |archive-date=2013-02-28 |archive-url=https://web.archive.org/web/20130228072027/http://blog.opalang.org/2013/02/some-great-news-on-opa.html |url-status=live }}

| {{free|MIT and AGPL}}

{{rh}}| OpenACS

| Tcl

| 5.10.1{{Cite web |title=OpenACS Home |url=https://openacs.org/news/item?item_id=6173612 |access-date=2024-12-30 |website=openacs.org |archive-date=2024-12-18 |archive-url=https://web.archive.org/web/20241218233625/https://openacs.org/news/item?item_id=6173612 |url-status=live }}

| 2024-09-03

| {{free|GPL}}

{{rh}}| Seaside

| Smalltalk

| 3.5.9{{cite web|url=https://github.com/SeasideSt/Seaside/releases|title=Releases · SeasideSt/Seaside · GitHub|date=25 October 2024|website=GitHub|access-date=19 July 2021|archive-date=29 July 2017|archive-url=https://web.archive.org/web/20170729085140/https://github.com/SeasideSt/Seaside/releases|url-status=live}}

| 2024-10-20

| {{free|MIT}}

Comparison of features

=C++=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

{{rh}}| CppCMS

| {{Yes}}

| {{Yes}}

| {{Yes|Push}}

| {{Yes}}

| {{Yes|CppDB}}

| {{No}}

| {{No}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| Wt

| {{Yes}}

| {{Yes}}

| {{Yes|Push & Pull}}

| {{Yes}}

| {{Yes|Wt::Dbo}}

| {{Yes|Boost.test}}

|

| {{Yes}}

| {{Yes}}

| {{No}}

| {{Yes}}

=ColdFusion Markup Language (CFML)=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

{{rh}}| ColdBox Platform

| {{Yes}}

| {{Yes}}

| Push-pull

| {{Yes}}

| {{Yes| Quick & cbORM}}

| {{Yes}} via TestBox

| {{Yes}}

| {{Yes}}

| {{Yes|CFML}}

| {{Yes}}

| {{Yes}}

=Java=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

!Language

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

{{rh}}| Apache Click

| Java

| {{Yes|jQuery}}

| Page oriented

| Pull

| {{Yes}}

| {{Yes|Hibernate, Cayenne}}

| {{Yes}}

|

| {{Yes|pluggable}}

| {{Yes|Velocity, JSP}}

| {{Yes|Cached templates}}

| {{Yes|Built-in validation}}

{{rh}}| Apache OFBiz

| Java, Groovy, XML,

| {{Yes|jQuery}}

| {{Yes}}

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes|Entity Engine (Internal kind of ORM, not really ORM, notably used by Atlassian Jira)}}

| {{Yes|JUnit}}

| {{Yes|Entity Engine Tools, Data File Tool, CSV Parser, Apache POI}}

| {{Yes|Internal Security framework based on OWASP}}

| {{Yes|Freemarker (Recommended), Velocity (Support Available), JSP (Support Available)}}

| {{Yes|Internal Cache Maintenance with Distributed Cache Clearing for clusters}}

| {{Yes|Server side validation, Client Side Validation (JQuery)}}

{{rh}}| Apache Sling

| Java

| {{Yes}}

| {{Yes}}

| {{Yes|Push-pull}}

|

| Uses JCR content repository

|

|

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| Apache Struts

| Java

| {{Yes}}

| {{Yes}}

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes}}

| {{Yes|Unit tests}}

|

|

| {{Yes}}

|

| {{Yes}}

{{rh}}| Apache Tapestry

| Java

| {{Yes|Prototype, jQuery}}

| {{Yes}}

| Pull

| {{Yes}}

| {{Yes|JPA, Hibernate, Cayenne}}

| {{Yes|Selenium, TestNG, JUnit}}

|

| {{Yes|Spring Security, Shiro}}

| {{Yes}}

| {{Yes|with extensions}}

| {{Yes| Native or Bean Validation}}

{{rh}}| Apache Wicket

| Java

| {{Yes|Extensions for YUI, ExtJS, more}}

| {{No}} (Modular event-driven)

| Pull

| {{Yes}}

| {{Yes|with extensions}}

| {{Yes|Mock objects, unit and integration tests via extension}}

|

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| Grails

| Groovy

| {{Yes}}

| {{Yes}}

| Push

| {{Yes}}

| {{Yes|GORM, Hibernate}}

| {{Yes|Unit tests, integration test, functional test}}

| {{Yes|multiple plugins: autobase, dbmigrate, more}}

| {{Yes|Spring Security,{{cite web |url=http://grails.org/plugin/spring-security-core |title=Grails Plugin: Spring Security Core Plugin |publisher=Grails.org |date=2012-04-06 |access-date=2013-08-18 |archive-date=2013-08-23 |archive-url=https://web.archive.org/web/20130823140206/http://grails.org/plugin/spring-security-core |url-status=dead }} Apache Shiro{{cite web |url=http://grails.org/plugin/shiro |title=Grails Plugin: Apache Shiro Integration for Grails |publisher=Grails.org |date=2012-04-11 |access-date=2013-08-18 |archive-date=2013-08-23 |archive-url=https://web.archive.org/web/20130823110300/http://grails.org/plugin/shiro |url-status=dead }}}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| JavaServer Faces

| Java

| {{Yes}}

| {{Yes}}

| Pull

| {{Yes}}

| {{Yes|JPA, Hibernate and any other Java EE ORM framework}}

| {{Yes|JUnit}}

|

| {{Yes}}

| {{Yes| Facelets, JSP}}

| {{Yes}}

| {{Yes| Native validators, integration with Bean Validation}}

Project

!Language

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

{{rh}}| JBoss Seam

| Java

| {{Yes}}

| {{Yes}}

| Pull

| {{Yes}}

| {{Yes|JPA, Hibernate}}

| {{Yes|JUnit, TestNG}}

|

| {{Yes|JAAS integration, Drools, Hibernate Filters, OpenID, CAPTCHA}}

| {{Yes|Facelets}}

| {{Yes|JBoss Cache, Ehcache}}

| {{Yes|Hibernate Validator}}

{{rh}}| JWt

| Java

| {{Yes}}

| {{Yes}}

| {{Yes|Push-pull}}

| {{Yes}}

|

|

|

| {{Yes}}

| {{Yes}}

|

| {{Yes}}

{{rh}}| Play

| Java, Scala

| {{Yes}}

| {{Yes}}

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes|JPA, Hibernate}}

| {{Yes|JUnit, Selenium}}

| {{Yes}}

| {{Yes|via Core Security module}}

| {{Yes}}

| {{Yes}}

| {{Yes|Server-side validation}}

{{rh}}| Spring

| Java

| {{Yes}}

| {{Yes}}

| Push

| {{Yes}}

| {{Yes|Hibernate, iBatis, more}}

| {{Yes|Mock objects, unit tests}}

|

| {{Yes|Spring Security (formerly Acegi)}}

| {{Yes|JSP, Commons Tiles, Velocity, Thymeleaf, more}}

| {{Yes|Ehcache, more}}

| {{Yes|Commons validator, Bean Validation}}

{{rh}}| Stripes

| Java

| {{Yes}}

| {{Yes}}

| Pull

| {{Yes}}

| {{Yes|JPA, Hibernate}}

| {{Yes}}

|

| {{Yes|framework extension}}

| {{Yes}}

|

| {{Yes}}

{{rh}}| Vaadin

| Java

| {{Yes|GWT}}

|

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

|

|

| {{Yes}}

|

| {{Yes}}

{{rh}}| Wavemaker

| JavaScript (client), Java (server)

| {{Yes|Dojo Toolkit}}

| {{Yes}}

| Push

| {{Yes|Dojo Toolkit}}

| {{Yes|Hibernate}}

| {{Yes|JUnit}}

| {{Yes|Hibernate}}

| {{Yes|Spring Security (formerly Acegi), role-based access control}}

| {{Yes|Dojo Toolkit}}

| {{Yes|Dojo Toolkit}}

| {{Yes|Regular expression, schema-driven validation}}

Project

!Language

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

{{rh}}| WebObjects

| Java

| {{Yes}}

| {{Yes}}

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes|EOF}}

| {{Yes|WOUnit (JUnit), TestNG, Selenium}}

| {{Yes|in Project WONDER}}

|

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}} class="table-rh" |Google Web Toolkit

| Java, JavaScript

| {{Yes}}

|

|

| {{Yes}}

| {{Yes|JPA with RequestFactory}}

| JUnit (too early), jsUnit (too difficult), Selenium (best)

| via Java

| {{Yes}}

|

|

|{{Yes|Bean Validation}}

{{rh}} class="table-rh" |ZK

| Java, ZUML

| {{Yes|jQuery}}

| {{yes}}

| {{Yes|Push-pull}}

| {{yes}}

| {{Yes|any J2EE ORM framework}}

| {{Yes|JUnit, ZATS}}

| {{yes|HibernateUtil, SpringUtil}}

| {{yes|Spring Security}}

| {{yes|Macro components & composition}}

| {{yes}}

| {{yes|client, server}}

=JavaScript=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

{{rh}}| AngularJS

| {{Yes|XHR, JSONP}}

| {{Yes}}

|

| {{Yes|i18n and l10n}}

|

| {{Yes|Karma (unit testing), Protractor (end-to-end testing)}}

|

| {{Yes|Content Security Policy (CSP), XSRF}}

| {{Yes|Templates}}

| {{Yes|Caching}}

| {{Yes|Form validation (client-side)}}

{{rh}}| EmberJS

| {{Yes}}

| {{Yes}}

|

| {{Yes}}

| {{Yes|Ember Data}}

| {{Yes|QUnit}}

|

|

| {{Yes|Handlebars}}

|

|

{{rh}}| qooxdoo

| {{Yes}}

| {{Yes|Data binding}}

|

| {{Yes|i18n}}

|

| {{Yes|Testrunner}}

|

|

|

|

| {{Yes|Form Validation}}

{{rh}}| SproutCore

| {{Yes}}

| {{Yes}}

|

|

|

|

|

|

|

|

=Perl=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

{{rh}}| Catalyst

| {{Yes|Toolkit-independent (REST & JSON support, specific plugins for Prototype JavaScript Framework, more)}}

| {{Yes}}

| Push in its most common usage

| {{Yes}}

| {{Yes|DBIx::Class, Rose::DB::Object, more}}

| {{Yes|Supports Perl testing standards, Test Anything Protocol (TAP)}}

| {{dunno}}

| {{Yes|ACL-based, external engines, more}}

| {{Yes|Template::Toolkit, HTML::Template, HTML::Mason, PHP and any extant Perl template engine}}

| {{Yes|Cache, Memcached, shared memory, more}}

| {{Yes|HTML::FormHandler HTML::FormFu, HTML::FormValidator, more}}

{{rh}}| Dancer

| {{Yes}}

| {{Yes}}

| Push

| {{Yes}}

| {{Yes| DBIx::Class, ORMesque}}

| {{Yes}}

| {{dunno}}

| {{dunno}}

| {{Yes|Template::Toolkit, HTML::Mason, Text::MicroTemplate, any extant Perl template engine}}

| {{Yes|Cache, Memcached, shared memory, more}}

| {{Yes|DataFu, any extant Perl form validation software}}

{{rh}}| Maypole

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

| {{dunno}}

{{rh}}| Mojolicious

| {{Yes|Toolkit-independent (REST & JSON support)}}

| {{No|No explicit model support though commonly used as MVC}}

| Push

| {{Yes}}

| {{Yes|Commonly used with DBIx::Class}}

| {{Yes|Test::Mojo}}

| {{dunno}}

| {{Yes|Signed session cookie}}

| {{Yes|Built-in Perl templating, Template::Toolkit and several others via plugins}}

| {{dunno}}

| {{No|Not explicitly, use any Perl Modules}}

=PHP=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

!PHP version

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

!Scaffolding

!RAD

!Mobility

{{rh}}| CakePHP

| ≥ 7.4{{Cite web |title=Installation - 4.x |url=https://book.cakephp.org/4/en/installation.html |access-date=2025-02-23 |website=book.cakephp.org |archive-date=2025-01-20 |archive-url=https://web.archive.org/web/20250120015104/https://book.cakephp.org/4/en/installation.html |url-status=live }}

| {{Yes|Any}}

| {{Yes}}

| {{Yes|Yes, Push & Cells}}

| {{Yes}}

| {{Yes|ORM, Data Mapper Pattern, SQL Relational Algebra Abstraction Layer}}

| {{Yes|Unit tests, object mocking, fixtures, code coverage, memory analysis with PHPUnit and Xdebug and Continuous Integration via Travis}}

| {{Yes}}

| {{Yes|CRUD based, ACL-based, Multiple Plugins}}

| {{Yes|Themes, Layouts, Cells, Views, Elements, Plugins for Twig, Bootstrap, etc.}}

| {{Yes|Memcache, Redis, XCache, APC, File}}

| {{Yes|Validation via Contexts (Table (DAO), Entity (VO) & Controller), CSRF Protection}}

| {{depends|Plugin CRUD}}

| {{Yes|Cake Bake}}

| {{Yes|Mobile Agent Detection, Layouts}}

{{rh}}| CodeIgniter

| ≥ 8.1{{cite web|url=https://codeigniter.com/user_guide/intro/requirements.html|title=Server Requirements — CodeIgniter 4 documentation|website=codeigniter.com|access-date=2025-02-23}}

| {{Yes|Any}}

| {{Yes}}

| {{partial|Push}}

| {{depends|Mostly}}{{cite web|title=Language helper included, must activate & set desired language by parsing HTTP headers|url=http://codeigniter.com/user_guide/libraries/language.html|website=Codeigniter.com|access-date=2013-08-18|archive-url=https://web.archive.org/web/20121108090748/http://codeigniter.com/user_guide/libraries/language.html|archive-date=2012-11-08|url-status=dead}}

| {{depends|Third party only}}

| {{Yes|Ready for next release}}, Unit tests for v.4 and up

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{No}}{{cite web|title=Change Log : CodeIgniter User Guide|url=http://codeigniter.com/user_guide/changelog.html|publisher=EllisLab, Inc.|access-date=19 March 2012|archive-url=https://web.archive.org/web/20150515115118/http://www.codeigniter.com/user_guide/changelog.html|archive-date=15 May 2015|url-status=dead}}

| {{Yes}}

| {{Yes|Templates}}

{{rh}}| Fat-Free Framework

| ≥ 5.4{{Cite web |title=Getting Started - Fat-Free Framework for PHP |url=https://fatfreeframework.com/3.9/getting-started |access-date=2025-02-23 |website=fatfreeframework.com |archive-date=2025-02-23 |archive-url=https://web.archive.org/web/20250223184946/https://fatfreeframework.com/3.9/getting-started |url-status=live }}

| {{Yes | Any}}

| {{Yes | MVC, RMR}}

| {{Yes | Push-pull}}

| {{Yes}}

| {{Yes | Data mappers for SQL, MongoDB, Flat-File}}

| {{Yes|Built-in}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes | APC, Memcache, XCache, WinCache, and Filesystem}}

| {{Yes}}

| {{No}}

| {{dunno}}

| {{dunno}}

{{rh}}| FuelPHP

| ≥ 5.3.3{{Cite web |title=Requirements - FuelPHP Documentation |url=https://fuelphp.com/docs/requirements.html |access-date=2020-12-02 |website=fuelphp.com |archive-date=2020-11-26 |archive-url=https://web.archive.org/web/20201126202724/https://fuelphp.com/docs/requirements.html |url-status=live }}

| {{Yes}}

| {{Yes|MVC, HMVC}}

| {{partial|Push}}

| {{Yes}}

| {{Yes}}

| {{Yes|PHPUnit}}

| {{Yes}}

| {{Yes}}, Plugins available

| {{Yes}}, Plugins available

| {{Yes|File, Redis, Memcache, more}}

| {{Yes}}

| {{Yes}}

| {{dunno}}

| {{dunno}}

{{rh}}| Gyroscope

| ≥ 5.4

| {{Yes | nano.js, replaceable{{cite web |url=http://www.antradar.com/blog-replacing-nano-js-gyroscope |title=Replacing nano.js in Gyroscope |publisher=antradar.com |date=2014-05-20 |access-date=2015-08-20 |archive-date=2016-09-28 |archive-url=https://web.archive.org/web/20160928020903/http://www.antradar.com/blog-replacing-nano-js-gyroscope |url-status=live }}}}

| {{Yes | LCHH}}

| {{Yes | Push-pull}}

| {{Depends|Mostly}}

| {{Depends|Data-source agnostic}}

| {{No}}

| {{Depends|Built-in Schema comparison tool and UDF editor}}

| {{Yes|ACL-based, replaceable}}

| {{Depends|Implementation-specific; helper functions and theme templates available}}

| {{Yes | APC, Memcache}}

| {{Yes}}

| {{Yes | Interactive code generator}}

| {{Yes}}

| {{Yes | Dedicated mobile and tablet layouts, landscape-portrait transformation}}

{{rh2}}|Kajona

| ≥ 7{{Cite web |title=Kajona 6.2 shifts the focus to PHP 7 |url=https://www.kajona.de/en/News/newsdetails.Kajona-V6-2-released..4a50c7d593862d586042.html |access-date=2020-12-02 |website=www.kajona.de |archive-date=2020-01-18 |archive-url=https://web.archive.org/web/20200118183148/https://www.kajona.de/en/News/newsdetails.Kajona-V6-2-released..4a50c7d593862d586042.html |url-status=dead }}

| {{Yes|Any}}

| {{Yes}}

| {{Yes|Push}}

| {{Yes}}

| {{Yes}}

| {{Yes| PHPUnit, Selenium, Jasmine}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes|APC, Database, File}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes|Bootstrap}}

{{rh}}| Laminas (formerly {{nowrap|Zend Framework}})

| ≥ 7.3{{Cite web |title=Zend/Laminas Drops PHP support prior to 7.3 |url=https://github.com/laminas/laminas-migration/pull/55 |access-date=2021-01-06 |website=GitHub |language=en}}

| {{Yes|Toolkit-independent}}

| {{Yes}}

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes|Table and row data gateway or Doctrine}}

| {{Yes|Unit tests, PHP Unit or other independent}}

| {{Yes}}

| {{Yes|ACL-based}}

| {{Yes}}

| {{Yes|APC, Database, File, Memcache, Zend Platform}}

| {{Yes}}

| {{Yes}}

| {{dunno}}

| {{dunno}}

{{rh}}|Laravel

| ≥ 8.0{{Cite web |title=Laravel - The PHP Framework For Web Artisans |url=https://laravel.com/ |access-date=2022-04-23 |website=laravel.com |language=en |archive-date=2021-02-07 |archive-url=https://web.archive.org/web/20210207185436/https://laravel.com/ |url-status=live }}

| {{Yes|Any}}

| {{Yes}}

| {{Yes|Push}}

| {{Yes}}

| {{Yes|Eloquent}}

| {{Yes|PHPUnit}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes|APC, Database, File, Memcache, Redis}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| Li3 (Lithium)

| ≥ 5.3.6

| {{Yes|Any}}

| {{Yes}}

| {{partial|Push}}

| {{Yes}}

| {{Yes|Yes}}

| {{Yes|Unit tests, builtin test framework or other independent}}

| {{No}}

| {{Yes|Yes, Plugins available}}

| {{Yes|PHP, Twig Plugin available}}

| {{Yes|Memcache, Redis, XCache, APC, File}}

| {{Yes|Yes, with CSRF Protection and Form Signing}}

| {{No}}

| {{Yes}}

| {{dunno}}

{{rh}}| Phalcon

| ≥ 8.0{{cite web|url=https://docs.phalcon.io/5.8/installation |title=Phalcon v5.8 supports only PHP 8.0 and above. }}

| {{Any}}

| {{Yes}}

| {{Yes|Push}}

| {{Yes}}

| {{Yes}}

| {{Yes | Codeception PHPUnit}}

| {{Yes}}

| {{Yes}}

| {{Yes|Volt, PHP}}

| {{Yes|APC, Memcache, Memory, Redis, Redis Cluster, File}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{dunno}}

{{rh}}|Pop PHP

| ≥ 8.2

| {{Any}}

| {{Yes}}

| {{Yes|Push}}

| {{Yes}}

| {{Yes}}

| {{Yes|PHPUnit with CI via GitHub Actions}}

| {{Yes}}

| {{Yes|ACL-based}}

| {{Yes}}

| {{Yes|APC, Database, File, Memcache, Redis, Session}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{dunno}}

{{rh}}| PRADO

| ≥ 7.3{{Cite web |title=PRADO PHP Framework |url=http://www.pradoframework.net/site/ |access-date=2022-04-23 |website=www.pradoframework.net |archive-date=2022-05-26 |archive-url=https://web.archive.org/web/20220526111001/http://pradoframework.net/site/ |url-status=live }}

| {{Yes|Prototype, script.aculo.us, own components}}{{cite web |url=http://www.pradosoft.com/demos/quickstart/?page=ActiveControls.Home |title=PRADO QuickStart Tutorial |publisher=Pradosoft.com |access-date=2013-08-18 |archive-url=https://web.archive.org/web/20130928163438/http://www.pradosoft.com/demos/quickstart/?page=ActiveControls.Home |archive-date=2013-09-28 |url-status=dead }}

| {{No}}

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes|Data access objects (DAO), active record pattern, SQLMap data mapper}}

| {{Yes|PHPUnit, SimpleTest, Selenium}}

| {{No}}

| {{Yes}}

| {{Yes|XML-based, similar to ASP.NETs}}

| {{Yes|APC, Database, eAccelerator, Memcached, XCache}}

| {{Yes}}

| {{Yes}}

| {{dunno}}

| {{dunno}}

{{rh}}| SilverStripe (Sapphire)

| ≥ 7.1{{Cite web |title=Server Requirements |url=https://docs.silverstripe.org/en/4/getting_started/server_requirements/ |access-date=2020-12-02 |website=docs.silverstripe.org |language=en |archive-date=2022-12-21 |archive-url=https://web.archive.org/web/20221221102859/https://docs.silverstripe.org/en/4/getting_started/server_requirements/ |url-status=live }}

| {{Yes|jQuery, jQuery UI}}

| {{Yes}}

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes|Active record pattern}}

| {{Yes|Unit tests, Selenium}}

| {{Yes|Automatic}}

| {{Yes|incl. OpenID}}

| {{Yes|Themes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh2}}| Silex

| ≥ 5.3.9

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{depends|Plugin exists (Doctrine)}}

| {{Yes}}

| {{no}}

| {{Yes}}

| {{Yes|PHP, Twig}}

| {{depends|Plugin exists}}

| {{Yes}}

| {{depends|Plugin exists}}

| {{dunno}}

| {{dunno}}

{{rh}}| Smart.Framework

| ≥ 7.3{{Cite web |date=2022-01-07 |title=Smart.Framework: a practical, modern and high performance PHP / JavaScript Framework for Web featuring Middlewares + MVC |website=GitHub |url=https://github.com/unix-world/Smart.Framework |access-date=2022-04-23 |archive-date=2022-04-23 |archive-url=https://web.archive.org/web/20220423173555/https://github.com/unix-world/Smart.Framework |url-status=live }}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes|Yes (PostgreSQL, MySQL, SQLite, MongoDB, Solr, others via plugins)}}

| {{Yes}}

| {{no}}

| {{Yes}}

| {{Yes|Yes (Markers, Twig, others via plugins)}}

| {{Yes|Yes (File, Redis, others via plugins)}}

| {{Yes}}

| {{no}}

| {{Yes}}

| {{Yes|Yes, (jQuery mobile, Bootstrap, others via plugins)}}

{{rh}}| Symfony

| ≥ 8.1{{Cite web |title=Installing & Setting up the Symfony Framework (Symfony Docs) |url=https://symfony.com/doc/current/setup.html |access-date=2022-09-25 |website=symfony.com |language=en |archive-date=2022-09-25 |archive-url=https://web.archive.org/web/20220925214356/https://symfony.com/doc/current/setup.html |url-status=live }}

| {{Yes|Prototype, script.aculo.us, Unobtrusive Ajax with UJS and PJS plugins}}

| {{Yes}}

| {{partial|Push}}

| {{Yes}}

| {{Yes|Propel, Doctrine (YAML)}}

| {{Yes}}

| {{depends|Plugin exists (alpha code)}}

| {{depends|Plugin}}

| {{Yes|PHP, Twig}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{dunno}}

| {{dunno}}

{{rh}}| TYPO3

| ≥ 7.2{{Cite web |title=Download TYPO3 - get.typo3.org |url=https://get.typo3.org/ |access-date=2020-12-02 |website=get.typo3.org |archive-date=2019-01-28 |archive-url=https://web.archive.org/web/20190128033415/https://get.typo3.org/ |url-status=live }}

| {{Yes|Any}}

| {{Yes}}

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{partial}}

| {{Yes}}

| {{Yes|TYPO3 Fluid|Any}}

| {{Yes}}

| {{Yes}}

| {{Yes| Plugin exists}}

| {{Yes| Plugin exists}}

| {{dunno}}

{{rh}}| Yii

| ≥ 5.4{{Cite web |title=Getting Started: Installing Yii |url=https://www.yiiframework.com/doc/guide/2.0/en/start-installation |access-date=2020-12-02 |website=Yii Framework |language=en}}

| {{Yes|jQuery, jQuery UI, own components, plugins}}

| {{Yes}}

| {{Yes|Push-pull}}

| {{Yes}}

| {{Yes|Data Access Objects (DAO), Active Record Pattern, Plugins (incl. Doctrine 2.0)}}

| {{Yes|PHPUnit, Selenium}}

| {{Yes}}

| {{Yes|ACL-based, RBAC-based, plugins}}

| {{Yes|PHP-based, PRADO-like, plugins}}

| {{Yes|APC, Database, eAccelerator, File, Memcache, Redis, WinCache, XCache, Zend Platform}}

| {{Yes}}

| {{Yes}}{{cite web |url=http://www.yiiframework.com/doc/blog/1.1/en/prototype.scaffold |title=Initial Prototyping: Scaffolding {{pipe}} Building a Blog System Using Yii {{pipe}} Yii PHP Framework |publisher=Yiiframework.com |access-date=2013-08-18 |archive-date=2013-07-24 |archive-url=https://web.archive.org/web/20130724085848/http://www.yiiframework.com/doc/blog/1.1/en/prototype.scaffold |url-status=live }}

| {{dunno}}

| {{dunno}}

=Python=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

!Language

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

!Python 3.*

{{rh}}| CherryPy

| Python

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{Yes| pluggable}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{Yes| pluggable}}

| {{sdash}}

| {{sdash}}

| {{Yes}}

{{rh}}| Django

| Python

| {{Yes}}

| {{Yes}}

| Push

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes|built-in, Jinja2, Mako, Cheetah}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| FastAPI

| Python

| {{Yes}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{depends|ORM-agnostic}}

| {{Yes|via pytest}}

| {{n/a|depends on ORM}}

| {{Yes}}

| {{Yes| Jinja2}}

| {{sdash}}

| {{Yes}}

| {{Yes}}

{{rh}}| Flask

| Python

| {{Yes}}

| {{sdash}}

| {{sdash}}

| {{Yes}}

| {{depends|ORM-agnostic}}

| {{Yes|via unittest}}

| {{n/a|depends on ORM}}

| {{Yes}}

| {{Yes| Jinja2}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| Jam.py

| Python, JavaScript

| {{Yes}}

| Event driven

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes|via pytest and mocha}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| Pyjs

| Python, JavaScript

| {{Yes}}

| Use PureMVC Python version (compiled to JavaScript)

|

| {{Yes}}

| ??, no direct data access

|

| {{No}}

|

|

|

|

| {{No}}

{{rh}}| Pylons

| Python

| {{Yes|helpers for Prototype and script.aculo.us}}

| {{Yes|controller}}

| Push

| {{Yes}}

| {{depends|ORM-agnostic}}

| {{depends|via nose}}

| {{n/a|depends on ORM}}

|

| {{depends|pluggable: Mako, Genshi, Myghty, Kid, more}}

| {{depends|native: pluggable: Redis, Beaker (memory, memcached, file, databases)}}

| {{depends|preferred formencode}}

| {{No}}

{{rh}}| Pyramid

| Python

| {{Yes}}

| {{Yes}}

| Push

| {{Yes}}

| {{depends|ORM-agnostic}}

| {{Yes}}

| {{n/a|depends on ORM}}

| {{Yes}}

| {{Yes|pluggable: Jinja2, Chameleon, Mako, Genshi, [https://trypyramid.com/extending-pyramid.html more]}}

| {{depends|default: native [https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/sessions.html session factory]. pluggable: Redis, PyNaCl, Beaker (memory, memcached, file, databases), [https://trypyramid.com/extending-pyramid.html more]}}

| {{depends|deform, formencode, WTForms, [https://trypyramid.com/extending-pyramid.html more]}}

| {{Yes}}

{{rh}}| TACTIC

| Python

| {{Yes|Yes}}

| {{Yes|Yes}}

| Pull

| {{No}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes|Mako}}

| {{No}}

| {{Yes}}

| {{No}}

{{rh}}| Tornado

| Python

| {{Yes|See Advanced Async Example implements AJAX}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{sdash}}

| {{Yes|Yes}}

{{rh}}| TurboGears

| Python

| {{Yes|Toolkit-independent, provides support via JSON}}

| {{Yes|Full stack, best-of-breed based}}

| Push

| {{Yes}}

| {{Yes|SQLAlchemy}}

| {{Yes|nose}}

| {{Yes|SQLAlchemy-Migrate}}

| {{Yes|Repoze.what & Repoze.who}}

| {{Yes|pluggable: Genshi, more}}

| {{Yes|Support for memcached, and any WSGI compliant system}}

| {{Yes|ToscaWidgets, utilizing FormEncode}}

| {{Yes}}

{{rh}}| web2py

| Python

| {{Yes}}

| {{Yes}}

| Push

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}{{cite web |url=http://web2py.com/init/default/what |title=invalid function (default/images) |publisher=Web2py.com |access-date=2019-03-21 |archive-date=2019-03-28 |archive-url=https://web.archive.org/web/20190328201712/http://web2py.com/init/default/what |url-status=live }}

{{rh}}| BlueBream (Zope 3)

| Python

| {{Yes|via add-on products, e.g. Plone w/KSS}}

| {{Yes}}

| Pull

| {{Yes}}

| {{Yes|ZODB, SQLObject, SQLAlchemy}}

| {{Yes|Unit tests, functional tests}}

| {{Yes|ZODB generations}}

| {{Yes|ACL-based}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{No}}

{{rh}}| Zope 2

| Python

|

| {{Yes}}

| Pull

| {{Yes}}

| {{Yes|ZODB, SQLObject, SQLAlchemy}}

| {{Yes|Unit tests}}

|

| {{Yes|ACL-based}}

| {{Yes}}

| {{Yes}}

| {{Yes|CMFFormController}}

| {{No}}

=Ruby=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

{{rh}}| Ruby on Rails

| {{Yes|Prototype, script.aculo.us, jQuery}}

| {{Yes|ActiveRecord, Action Pack}}

| Push

| {{Yes|Yes}}

| {{Yes|ActiveRecord}}

| {{Yes|Unit Tests, Functional Tests and Integration Tests}}

| {{Yes}}

| {{Yes|Plug-in}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| Sinatra

| {{No}}

| {{Yes}}

| Push

| {{No}}

| {{Yes|ORM-independent}}

| {{Yes|rack-test}}

| {{Yes}}

| {{Yes|through Rack middleware}}

| {{Yes}}

| {{Yes|through Rack middleware}}

| {{No}}

=Others=

class="wikitable sortable sort-under" style="font-size: 90%"
Project

!Language

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

{{rh}}| AIDA/Web

| Smalltalk

| {{Yes}}

| {{Yes}}

|

| {{Yes}}

| {{Yes|Gemstone/S, GLORP, more}}

| {{Yes|SUnit}}

|

| {{Yes}}

|

|

| {{Yes}}

{{rh}}|Application Express

| PL/SQL

| {{Yes}}

|

|

| {{Yes}}

|

|

| {{Yes}}

| {{Yes}}

|

|

| {{Yes}}

{{rh}}| Flex

| ActionScript, MXML

| {{No|Not by name but similar technology{{cite web |url=http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html |title=URLRequest - Adobe ActionScript 3 (AS3 ) API Reference |publisher=Livedocs.adobe.com |date=2013-07-01 |access-date=2013-08-18 |archive-url=https://web.archive.org/web/20090212104408/http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html |archive-date=2009-02-12 |url-status=dead }}}}

|

|

|

|

| {{Yes|FlexUnit}}

|

|

|

|

|

{{rh}}| Lift

| Scala

| {{Yes}}

| {{Yes}}

| Pull

| {{Yes}}

| {{Yes}}

| {{Yes|ScalaTest, Selenium}}{{cite web |url=http://www.scalatest.org/user_guide/using_selenium |title=ScalaTest |publisher=ScalaTest |access-date=2013-08-18 |archive-date=2013-11-05 |archive-url=https://web.archive.org/web/20131105232749/http://www.scalatest.org/user_guide/using_selenium |url-status=dead }}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| Opa

| Opa

| {{Yes}}

|

|

| {{Yes}}

| {{Yes| MongoDB}}

|

|

| {{Yes}}

| {{Yes}}

| {{Yes}}

|

{{rh}}| OpenACS

| Tcl

| {{Yes}}

| {{Yes}}

|

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

| {{Yes}}

{{rh}}| Seaside

| Smalltalk

| {{Yes|jQuery, jQuery UI, Prototype JavaScript Framework, script.aculo.us, more}}

| {{Yes}}

|

| {{Yes}}

| {{Yes|GLORP, Gemstone/S, more}}

| {{Yes|Unit tests, SUnit}}

|

|

| {{No}}, intentionally

|

| {{Yes|Magritte}}

Project

!Language

!Ajax

!MVC framework

!MVC push-pull

!i18n & L10n?

!ORM

!Testing framework(s)

!DB migration framework(s)

!Security framework(s)

!Template framework(s)

!Caching framework(s)

!Form validation framework(s)

See also

References