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 | {{free|MIT}} |
{{rh2}}| MonoRail
| 2.1 | {{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 | {{free|MIT}} |
{{rh}}| Drogon
| 1.9.5 | {{free|MIT}} |
{{rh}}| Poco
| {{POCO C++ Libraries version}} | {{POCO C++ Libraries version|releasedate}} |
{{rh}}| Wt
| 4.10.4 | 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
| 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}}}} |
{{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
| 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%" | |||
Project | Current stable version | Release date | License |
---|---|---|---|
{{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}} |
{{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 | 2017-06-08 | {{free|LGPLv2}} |
{{rh}}| Laminas (formerly {{nowrap|Zend Framework}})
| 2006-03 | 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 | 2024-07-09 | {{free|BSD}} |
{{rh}}| Pop PHP
| 2012-03-19 | 2025-02-12 | {{free|BSD Licence}} |
{{rh}}| PRADO
| 2004-01 | {{PRADO (framework) version}} | {{PRADO (framework) version|releasedate}} {{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 | {{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 |
{{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
| 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) | 2024-11-20 | {{free|Apache}} |
{{rh2}}| Morfik
| 3.0.8.1 | 2010-12-13 | {{proprietary|Proprietary freeware}} |
{{rh2}}| Opa
| Opa | 1.1.1 | {{free|MIT and AGPL}} |
{{rh}}| OpenACS
| Tcl | 2024-09-03 | {{free|GPL}} |
{{rh}}| Seaside
| 2024-10-20 | {{free|MIT}} |
Comparison of features
=C++=
class="wikitable sortable sort-under" style="font-size: 90%" |
Project
!Ajax !MVC framework !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 !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 !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 !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 !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 !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 !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 !ORM !Testing framework(s) !DB migration framework(s) !Security framework(s) !Template framework(s) !Caching framework(s) !Form validation framework(s) !RAD !Mobility |
---|
{{rh}}| CakePHP
| {{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
| {{Yes|Any}} | {{Yes}} | {{partial|Push}} | {{depends|Third party only}} | {{Yes|Ready for next release}}, Unit tests for v.4 and up | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes}} | {{Yes|Templates}} |
{{rh}}| Fat-Free Framework
| {{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
| {{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 | 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
| {{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}})
| {{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
| {{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
| {{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
| {{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}} | {{dunno}} | {{dunno}} |
{{rh}}| SilverStripe (Sapphire)
| {{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
| {{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
| {{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
| {{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}} | {{dunno}} | {{dunno}} |
=Python=
class="wikitable sortable sort-under" style="font-size: 90%" |
Project
!Language !Ajax !MVC framework !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}} |
{{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 !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 !ORM !Testing framework(s) !DB migration framework(s) !Security framework(s) !Template framework(s) !Caching framework(s) !Form validation framework(s) |
---|
{{rh}}| AIDA/Web
| {{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
| {{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) |