Comparison of server-side web frameworks

Short description: none

Programming language comparisons

* General comparison
* Assignment
* Basic syntax
* Basic instructions
* Comments
* Control flow
* Foreach loops
* While loops
* For loops
* Do-while
* Exception handling
* Enumerated types
* Generators
* Anonymous functions
* Conditional expressions
* Functional instructions
* Arrays
* Associative arrays
* Scope
* String operations
* String functions
* Higher-order functions
* Type systems
* List comprehension
* Object-oriented programming
* Object-oriented constructors
* Operators

* Evaluation strategy
* List of "Hello World" programs

* Languages with dependent types
* Comparison of type systems

* * *

Comparison of individual languages

* ALGOL 58's influence on ALGOL 60
* ALGOL 60: Comparisons with other languages
* Comparison of ALGOL 68 and C++
* ALGOL 68: Comparisons with other languages
* Compatibility of C and C++
* Comparison of Pascal and Borland Delphi
* Comparison of Object Pascal and C
* Comparison of Pascal and C
* Comparison of Java and C++
* Comparison of C# and Java
* Comparison of C# and Visual Basic .NET
* Comparison of Visual Basic and Visual Basic .NET

* v
* t
* e

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

## Contents

* 1 General
* 1.1 ASP.NET
* 1.2 C++
* 1.3 ColdFusion Markup Language (CFML)
* 1.4 Elixir
* 1.5 Haskell
* 1.6 Java
* 1.7 JavaScript
* 1.8 Perl
* 1.9 PHP
* 1.10 Python
* 1.11 Ruby
* 1.12 Scala
* 1.13 Others
* 2 Comparison of features
* 2.1 C++
* 2.2 ColdFusion Markup Language (CFML)
* 2.3 Java
* 2.4 JavaScript
* 2.5 Perl
* 2.6 PHP
* 2.7 Python
* 2.8 Ruby
* 2.9 Others
* 3 See also
* 4 References

## General

Basic information about each framework.

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

### ASP.NET

Project  | Current stable version  | Release date  | License

|
|
|

ASP.NET Dynamic Data  |  |  |
Base One Foundation Component Library (BFC)  | 7.51  | 2018-06-01  | Proprietary
Component-based Scalable Logical Architecture (CSLA)  | 4.11.2  | 2019-07-31[1] | MIT
MonoRail | 2.1  | 2011-03-17[2] | Apache

### C++

Project  | Current stable version  | Release date  | License

|
|
|

CppCMS | 1.2.1  | 2018-05-18[3] | MIT
Drogon | 1.8.4  | 2023-03-20[4] | MIT
Poco | Boost Software License
Wt | 4.7.1  | 2022-04-15[5] | GPL, Proprietary

### ColdFusion Markup Language (CFML)

Project  | Current stable version  | Release date  | License

|
|
|

ColdBox Platform | Apache v2
ColdSpring  | 1.2  | 2008-09-12  | Apache v2
Fusebox | 5.5.2  | 2012-05-08  | Apache

### Elixir

Project  | Current stable version  | Release date  | License

|
|
|

Phoenix |  | ; 0 seconds ago  | MIT License

### Haskell

Project  | Current stable version  | Release date  | License

|
|
|

Snap | 1.1.3.0[6] | 2020-05-07  | BSD-3
Yesod | MIT License

### Java

Project  | Current stable version  | Release date  | License

|
|
|

Apache Click | 2.3.0  | 2011-03-27  | Apache 2.0
Apache OFBiz |  | ; 0 seconds ago  | Apache 2.0
Apache Shale  | 1.0.4  | 2007-12-19  | Apache
Apache Sling | 12  | 2022-03-18  | Apache 2.0
Apache Struts 2 | 6.0.0  | 2022-06-06  | Apache 2.0
Apache Tapestry | 5.4.5  | 2019-08-31  | Apache 2.0
Apache Wicket | 8.5.0  | 2019-05-28  | Apache 2.0
AppFuse | 3.5.0  | 2015-02-20  | Apache 2.0
Eclipse RAP | 3.11  | 2019-12-18  | Eclipse
Grails |  | ; 0 seconds ago  | Apache
Google Web Toolkit | 2.9.0  | 2020-05-02  | Apache 2.0
JavaServer Faces (Mojarra)  | 2.3.9  | 2018-11-30  | CDDL, GNU GPL 2, Apache 2.0
JBoss Seam | 3.1.0 final  | 2012-01-13  | GNU LGPL
JWt | 3.4.0  | 2019-07-31[7] | GPL, Proprietary
Netty |  | ; 0 seconds ago  | Apache License 2.0
OpenLaszlo | 4.9.0  | 2010-10-21  | CPL
Oracle ADF | 12.2.1.4  | 2019-10-09  | Oracle Technology Network Developer License
Play |  | ; 0 seconds ago  | Apache 2.0
Spring |  | ; 0 seconds ago  | Apache 2.0
Stripes | 1.6.0  | 2015-07-23  | Apache
Vaadin | 14.0.3  | 2019-09-04  | Apache 2.0
Wavemaker  | 10.1.0[8] | 2019-08-19  | Apache
WebObjects | 5.4.3  | 2008-09-15  | Proprietary

### JavaScript

Project | Current stable version | Release date | License

|
|
|

Express.js | 4.17.1  | 2019-05-25  | MIT License
Meteor |  | ; 0 seconds ago  | MIT License
Sails.js | 1.2.3  | 2019-06-18  | MIT License
Next.js |  | ; 0 seconds ago  | MIT License

### Perl

Project  | Current stable version  | Release date  | License

|
|
|

Catalyst | Artistic, GPL
Dancer | Artistic, GPL
Maypole  | 2.13  | 2008-04-18  | Artistic, GPL
Mojolicious | Artistic

### PHP

Project  | Start date  | Current stable version  | Release date  | License

|
|
|
|

CakePHP | 2005-08  | MIT
CodeIgniter | 2006-02-28  | MIT
Fat-Free | 2009-09  | GPLv3
FuelPHP | 2011-08  | MIT
Gyroscope | 2008-11-20  | 20.4[9] | 2023-11-24  | BSD
Jamroom | 2003-07-28  | MPL
Kajona | 2006  | 6.2[10] | 2017-06-08  | LGPLv2
Laminas (formerly Zend Framework)  | 2006-03  | 3.3.3[11] | 2022-02-21  | New BSD
Laravel | 2011-07-31  | MIT
Li3 (Lithium)  | 2009-10  | BSD
Nette Framework | 2006-01[12] | 3.1.0[13] | 2021-01-05  | New BSD, GPLv2, GPLv3[14]
Phalcon | 2012-11-14  | 5.5.0[15] | 2023-12-25  | BSD
Pop PHP | 2012-03-19  | 5.1.0[16] | 2023-12-12  | BSD Licence
PRADO | 2004-01  | New BSD[17]
SilverStripe | 2007-02-03  | 4.5.1[18] | 2020-02-17[±] | BSD
Smart.Framework | 2015-02-01  | BSD
Symfony | 2005-10  | MIT
Yii | 2008-12-03  | New BSD

### Python

Project  | Current stable version  | Release date  | License

|
|
|

BlueBream |  | ; 0 seconds ago  | ZPL
CherryPy |  | ; 0 seconds ago  | BSD
CubicWeb |  | ; 0 seconds ago  | LGPL
Django |  | ; 0 seconds ago  | BSD
FastAPI  |  | ; 0 seconds ago  | MIT
Flask |  | ; 0 seconds ago  | BSD
Google App Engine |  | ; 0 seconds ago  | LGPL, Proprietary
Grok |  | ; 0 seconds ago  | ZPL
Jam.py |  | ; 0 seconds ago  | BSD
Nagare  |  | ; 0 seconds ago  | BSD
Pyjs |  | ; 0 seconds ago  | Apache
Pylons |  | ; 0 seconds ago  | BSD
Pyramid |  | ; 0 seconds ago  | BSD
TACTIC |  | ; 0 seconds ago  | EPL
Tornado |  | ; 0 seconds ago  | Apache
TurboGears |  | ; 0 seconds ago  | MIT, LGPL
web2py |  | ; 0 seconds ago  | LGPL3
Zope 2 |  | ; 0 seconds ago  | ZPL

### Ruby

Project  | Current stable version  | Release date  | License

|
|
|

Padrino | 0.14.4  | 2019-01-14[19] | MIT
PureMVC | 2.0.4  | 2008-08-14  | CC +Attribution
Ruby on Rails |  | ; 0 seconds ago  | MIT
Sinatra |  | ; 0 seconds ago  | MIT

### Scala

Project  | Current stable version  | Release date  | License

|
|
|

Lift | 3.4.3  | 2020-11-28  | Apache 2.0
Play | 2.8.8  | 2021-04-08  | Apache 2.0
Scalatra | 2.8.1  | 2021-09-25  | BSD

### Others

Project  | Language | Current stable version  | Release date  | License

|
|
|
|

AIDA/Web  | Smalltalk | 6.7  | 2014-09-14  | MIT
Oracle APEX | PL/SQL  | 22.2  | 2022-11-10  | Proprietary freeware
Flex | ActionScript, MXML | 4.16.1  | 2019-11-23  | Apache
Grails | Groovy (JVM)  | 4.0.0  | 2019-07-11  | Apache
Morfik | C#, BASIC, Pascal, Java | 3.0.8.1  | 2010-12-13  | Proprietary freeware
Opa | Opa  | 1.1.1  | 2013-04-16[20] | MIT and AGPL
OpenACS  | Tcl | 5.10.0[21] | 2021-09-15  | GPL
Seaside | Smalltalk | 3.4.4[22] | 2021-02-07  | MIT

## Comparison of features

### C++

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)

|
|
|
|
|
|
|
|
|
|
|

CppCMS | Yes  | Yes  | Push  | Yes  | CppDB  | No  | No  | Yes  | Yes  | Yes  | Yes
Wt  | Yes  | Yes  | Push & Pull  | Yes  | Wt::Dbo  | Boost.test  |  | Yes  | Yes  | No  | Yes

### ColdFusion Markup Language (CFML)

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)

|
|
|
|
|
|
|
|
|
|
|

ColdBox Platform | Yes  | Yes  | Push-pull  | Yes  | Quick & cbORM  | Yes via TestBox  | Yes  | Yes  | CFML | Yes  | Yes
Fusebox | via CF or any JavaScript library  | optional  | Push  | CFML  | via lexicons for Transfer, Reactor  | via other testing frameworks  | No  | via plugins  | CFML  | via lexicon for ColdSpring  | No

### Java

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)

|
|
|
|
|
|
|
|
|
|
|
|

Apache Click | Java  | jQuery | Page oriented  | Pull  | Yes  | Hibernate, Cayenne | Yes  |  | pluggable  | Velocity, JSP  | Cached templates  | Built-in validation
Apache OFBiz | Java, Groovy, XML,  | jQuery | Yes  | Push-pull  | Yes  | Entity Engine (Internal kind of ORM, not really ORM, notably used by Atlassian Jira)  | JUnit  | Entity Engine Tools, Data File Tool, CSV Parser, Apache POI  | Internal Security framework based on OWASP  | Freemarker (Recommended), Velocity (Support Available), JSP (Support Available)  | Internal Cache Maintenance with Distributed Cache Clearing for clusters  | Server side validation, Client Side Validation (JQuery)
Apache Sling | Java  | Yes  | Yes  | Push-pull  |  | Uses JCR content repository  |  |  | Yes  | Yes  | Yes
Apache Struts  | Java  | Yes  | Yes  | Push-pull  | Yes  | Yes  | Unit tests |  |  | Yes  |  | Yes
Apache Tapestry | Java  | Prototype, jQuery  | Yes  | Pull  | Yes  | JPA, Hibernate, Cayenne | Selenium, TestNG, JUnit |  | Spring Security, Shiro  | Yes  | with extensions  | Native or Bean Validation
Apache Wicket | Java  | Extensions for YUI, ExtJS, more  | No (Modular event-driven)  | Pull  | Yes  | with extensions  | Mock objects, unit and integration tests via extension  |  | Yes  | Yes  | Yes  | Yes
Grails  | Groovy  | Yes  | Yes  | Push  | Yes  | GORM, Hibernate  | Unit tests, integration test, functional test  | multiple plugins: autobase, dbmigrate, more  | Spring Security,[23] Apache Shiro[24] | Yes  | Yes  | Yes
JavaServer Faces | Java  | Yes  | Yes  | Pull  | Yes  | JPA, Hibernate and any other Java EE ORM framework  | JUnit |  | Yes  | Facelets, JSP  | 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)
JBoss Seam | Java  | Yes  | Yes  | Pull  | Yes  | JPA, Hibernate  | JUnit, TestNG |  | JAAS integration, Drools, Hibernate Filters, OpenID, CAPTCHA | Facelets  | JBoss Cache, Ehcache | Hibernate Validator
JVx WebUI  | Java  | Yes  | Model Driven  |  | Yes  | Yes, pluggable  | JUnit  |  | Yes  | Single sourcing  |  | Yes, pluggable
JWt | Java  | Yes  | Yes  | Push-pull  | Yes  |  |  |  | Yes  | Yes  |  | Yes
Play | Java, Scala  | Yes  | Yes  | Push-pull  | Yes  | JPA, Hibernate  | JUnit, Selenium | Yes  | via Core Security module  | Yes  | Yes  | Server-side validation
Spring | Java | Yes  | Yes  | Push  | Yes  | Hibernate, iBatis, more  | Mock objects, unit tests  |  | Spring Security (formerly Acegi)  | JSP, Commons Tiles, Velocity, Thymeleaf, more  | Ehcache, more  | Commons validator, Bean Validation
Stripes | Java  | Yes  | Yes  | Pull  | Yes  | JPA, Hibernate  | Yes  |  | framework extension  | Yes  |  | Yes
Vaadin | Java  | GWT |  | Push-pull  | Yes  | Yes  | Yes  |  |  | Yes  |  | Yes
Wavemaker  | JavaScript (client), Java (server)  | Dojo Toolkit | Yes  | Push  | Dojo Toolkit  | Hibernate  | JUnit  | Hibernate  | Spring Security (formerly Acegi), role-based access control | Dojo Toolkit  | Dojo Toolkit  | 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)
WebObjects | Java  | Yes  | Yes  | Push-pull  | Yes  | EOF | WOUnit (JUnit), TestNG, Selenium  | in Project WONDER  |  | Yes  | Yes  | Yes
Google Web Toolkit | Java, JavaScript  | Yes  |  |  | Yes  | JPA with RequestFactory  | JUnit (too early), jsUnit (too difficult), Selenium (best)  | via Java  | Yes  |  |  | Bean Validation
ZK | Java, ZUML  | jQuery | Yes  | Push-pull  | Yes  | any J2EE ORM framework  | JUnit, ZATS  | HibernateUtil, SpringUtil  | Spring Security  | Macro components & composition  | Yes  | client, server

### JavaScript

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)

|
|
|
|
|
|
|
|
|
|
|

AngularJS | XHR, JSONP  | Yes  |  | i18n and l10n  |  | Karma (unit testing), Protractor (end-to-end testing)  |  | Content Security Policy (CSP), XSRF  | Templates  | Caching  | Form validation (client-side)
EmberJS  | Yes  | Yes  |  | Yes  | Ember Data  | QUnit  |  |  | Handlebars  |  |
qooxdoo | Yes  | Data binding  |  | i18n  |  | Testrunner  |  |  |  |  | Form Validation
SproutCore | Yes  | Yes  |  |  |  |  |  |  |  |
Wakanda | Yes  | Yes  | Push & Pull  |  | Native Object NoSQL DB  | CommonJS Unit Testing YUI Test Service  |  | Data Security and Access Control  |  | Storage (application.storage, user.storage, SessionStorage)  |

### Perl

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)

|
|
|
|
|
|
|
|
|
|
|

Catalyst | Toolkit-independent (REST & JSON support, specific plugins for Prototype JavaScript Framework, more)  | Yes  | Push in its most common usage  | Yes  | [[DBIx::Class|]], Rose::DB::Object, more  | Supports Perl testing standards, Test Anything Protocol (TAP)  | ?  | ACL-based, external engines, more  | Template::Toolkit, HTML::Template, HTML::Mason, PHP and any extant Perl template engine  | Cache, Memcached, shared memory, more  | HTML::FormHandler HTML::FormFu, HTML::FormValidator, more
Dancer | Yes  | Yes  | Push  | Yes  | DBIx::Class, ORMesque  | Yes  | ?  | ?  | Template::Toolkit, HTML::Mason, Text::MicroTemplate, any extant Perl template engine  | Cache, Memcached, shared memory, more  | DataFu, any extant Perl form validation software
Maypole  | ?  | ?  | ?  | ?  | ?  | ?  | ?  | ?  | ?  | ?  | ?
Mojolicious | Toolkit-independent (REST & JSON support)  | No explicit model support though commonly used as MVC  | Push  | Yes  | Commonly used with DBIx::Class  | Test::Mojo  | ?  | Signed session cookie  | Built-in Perl templating, Template::Toolkit and several others via plugins  | ?  | Not explicitly, use any Perl Modules

### PHP

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)  | Scaffolding | RAD | Mobility

|
|
|
|
|
|
|
|
|
|
|
|
|
|
|

CakePHP | PHP >= 7.2[25] | Any  | Yes  | Yes, Push & Cells  | Yes  | ORM, Data Mapper Pattern, SQL Relational Algebra Abstraction Layer  | Unit tests, object mocking, fixtures, code coverage, memory analysis with PHPUnit and Xdebug and Continuous Integration via Travis  | Yes  | CRUD based, ACL-based, Multiple Plugins  | Themes, Layouts, Cells, Views, Elements, Plugins for Twig, Bootstrap, etc.  | Memcache, Redis, XCache, APC, File  | Validation via Contexts (Table (DAO), Entity (VO) & Controller), CSRF Protection  | Plugin CRUD  | Cake Bake  | Mobile Agent Detection, Layouts
CodeIgniter | PHP >= 7.2[26] (ver 4 and up) or PHP >= 5.6.0[27] (until ver 3.1.11)  | Any  | Yes  | Push  | Mostly[28] | Third party only  | Ready for next release, Unit tests for v.4 and up  | Yes  | Yes  | Yes  | Yes  | Yes  | No[29] | Yes  | Templates
Fat-Free Framework | PHP >= 5.4[30] | Any  | MVC, RMR  | Push-pull  | Yes  | Data mappers for SQL, MongoDB, Flat-File  | Built-in  | Yes  | Yes  | Yes  | APC, Memcache, XCache, WinCache, and Filesystem  | Yes  | No  | ?  | ?
FuelPHP | PHP >= 5.3.3[31] | Yes  | MVC, HMVC  | Push  | Yes  | Yes  | PHPUnit  | Yes  | Yes, Plugins available  | Yes, Plugins available  | File, Redis, Memcache, more  | Yes  | Yes  | ?  | ?
Gyroscope | PHP >= 5.4  | nano.js, replaceable[32] | LCHH | Push-pull  | Mostly  | Data-source agnostic  | No  | Built-in Schema comparison tool and UDF editor  | ACL-based, replaceable  | Implementation-specific; helper functions and theme templates available  | APC, Memcache  | Yes  | Interactive code generator  | Yes  | Dedicated mobile and tablet layouts, landscape-portrait transformation
Kajona | PHP >= 7[33] | Any  | Yes  | Push  | Yes  | Yes  | PHPUnit, Selenium, Jasmine | Yes  | Yes  | Yes  | APC, Database, File  | Yes  | Yes  | Yes  | Bootstrap
Laminas (formerly Zend Framework)  | PHP >= 7.3[34] | Toolkit-independent  | Yes  | Push-pull  | Yes  | Table and row data gateway or Doctrine  | Unit tests, PHP Unit or other independent  | Yes  | ACL-based  | Yes  | APC, Database, File, Memcache, Zend Platform  | Yes  | Yes  | ?  | ?
Laravel | PHP >= 8.0[35] | Any  | Yes  | Push  | Yes  | Eloquent  | PHPUnit | Yes  | Yes  | Yes  | APC, Database, File, Memcache, Redis | Yes  | Yes  | Yes  | Yes
Li3 (Lithium)  | PHP >= 5.3.6  | Any  | Yes  | Push  | Yes  | Yes  | Unit tests, builtin test framework or other independent  | No  | Yes, Plugins available  | PHP, Twig Plugin available  | Memcache, Redis, XCache, APC, File  | Yes, with CSRF Protection and Form Signing  | No  | Yes  | ?
Nette Framework | PHP >= 5.6.0[36] | Toolkit-independent  | MVP | Push  | Yes  | Third party only  | Yes  | No  | Yes  | Yes  | Yes  | Yes  | No  | ?  | ?
Phalcon | PHP >= 7.4[37] | Any  | Yes  | Push  | Yes  | Yes  | Codeception PHPUnit | Yes  | Yes  | Volt  | Yes  | Yes  | Yes  | Yes  | ?
Pop PHP | PHP >= 8.1  | Any  | Yes  | Push  | Yes  | Yes  | PHPUnit with CI via GitHub Actions  | Yes  | ACL-based  | Yes  | APC, Database, File, Memcache, Redis, Session  | Yes  | Yes  | Yes  | ?
PRADO | PHP >= 7.3[38] | Prototype, script.aculo.us, own components[39] | No  | Push-pull  | Yes  | Data access objects (DAO), active record pattern, SQLMap data mapper  | PHPUnit, SimpleTest, Selenium | No  | Yes  | XML-based, similar to ASP.NETs[39] | APC, Database, eAccelerator, Memcached, XCache  | Yes[39] | Yes[39] | ?  | ?
SilverStripe (Sapphire)  | PHP >= 7.1[40] | jQuery, jQuery UI  | Yes  | Push-pull  | Yes  | Active record pattern  | Unit tests, Selenium | Automatic  | incl. OpenID  | Themes  | Yes  | Yes  | Yes  | Yes  | Yes
Silex  | PHP >= 5.3.9  | Yes  | Yes  | Yes  | Yes  | Plugin exists (Doctrine)  | Yes  | No  | Yes  | PHP, Twig | Plugin exists  | Yes  | Plugin exists  | ?  | ?
Smart.Framework | PHP >= 7.3[41] | Yes  | Yes  | Yes  | Yes  | Yes (PostgreSQL, MySQL, SQLite, MongoDB, Solr, others via plugins)  | Yes  | No  | Yes  | Yes (Markers, Twig, others via plugins)  | Yes (File, Redis, others via plugins)  | Yes  | No  | Yes  | Yes, (jQuery mobile, Bootstrap, others via plugins)
Symfony | PHP >= 8.1[42] | Prototype, script.aculo.us, Unobtrusive Ajax with UJS and PJS plugins  | Yes  | Push  | Yes  | Propel, Doctrine (YAML)  | Yes  | Plugin exists (alpha code)  | Plugin  | PHP, Twig | Yes  | Yes  | Yes  | ?  | ?
TYPO3 | PHP >= 7.2[43] | Any  | Yes  | Push-pull  | Yes  | Yes  | Yes  | Partial  | Yes  | TYPO3 Fluid  | Yes  | Yes  | Plugin exists  | Plugin exists  | ?
Yii | PHP >= 5.4[44] | jQuery, jQuery UI, own components, plugins  | Yes  | Push-pull  | Yes  | Data Access Objects (DAO), Active Record Pattern, Plugins (incl. Doctrine 2.0)  | PHPUnit, Selenium | Yes  | ACL-based, RBAC-based, plugins  | PHP-based, PRADO-like, plugins  | APC, Database, eAccelerator, File, Memcache, Redis, WinCache, XCache, Zend Platform  | Yes  | Yes[45] | ?  | ?

### Python

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.*

|
|
|
|
|
|
|
|
|
|
|
|
|

CherryPy | Python  | \-  | \-  | _  | \-  | pluggable  | \-  | \-  | \-  | pluggable  | \-  | \-  | Yes
Django | Python  | Yes  | Yes  | Push  | Yes  | Yes  | Yes  | Yes  | Yes  | built-in, Jinja2, Mako, Cheetah  | Yes  | Yes  | Yes
FastAPI  | Python  | Yes  | \-  | \-  | \-  | ORM-agnostic  | via pytest | depends on ORM  | Yes  | Jinja2  | \-  | Yes  | Yes
Flask | Python  | Yes  | \-  | \-  | Yes  | ORM-agnostic  | via unittest  | depends on ORM  | Yes  | Jinja2  | Yes  | Yes  | Yes
Jam.py | Python, JavaScript | Yes  | Event driven  | Yes  | Yes  | Yes  | via pytest and mocha  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Pyjs | Python, JavaScript | Yes  | Use PureMVC Python version (compiled to JavaScript)  |  | Yes  | ??, no direct data access  |  | No  |  |  |  |  | No
Pylons | Python  | helpers for Prototype and script.aculo.us | controller  | Push  | Yes  | ORM-agnostic  | via nose  | depends on ORM  |  | pluggable: Mako, Genshi, Myghty, Kid, more  | native: pluggable: Redis, Beaker (memory, memcached, file, databases)  | preferred formencode  | No
Pyramid | Python  | Yes  | Yes  | Push  | Yes  | ORM-agnostic  | Yes  | depends on ORM  | Yes  | pluggable: Jinja2, Chameleon, Mako, Genshi, more | default: native session factory. pluggable: Redis, PyNaCl, Beaker (memory, memcached, file, databases), more | deform, formencode, WTForms, more | Yes
TACTIC | Python  | Yes  | Yes  | Pull  | No  | Yes  | Yes  | Yes  | Yes  | Mako  | No  | Yes  | No
Tornado | Python  | See Advanced Async Example implements AJAX  | \-  | \-  | \-  | \-  | \-  | \-  | \-  | \-  | \-  | \-  | Yes
TurboGears | Python  | Toolkit-independent, provides support via JSON  | Full stack, best-of-breed based  | Push  | Yes  | SQLAlchemy  | nose  | SQLAlchemy-Migrate  | Repoze.what & Repoze.who  | pluggable: Genshi, more  | Support for memcached, and any WSGI compliant system  | ToscaWidgets, utilizing FormEncode  | Yes
web2py | Python  | Yes  | Yes  | Push  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes[46]
BlueBream (Zope 3)  | Python  | via add-on products, e.g. Plone w/KSS  | Yes  | Pull  | Yes  | ZODB, SQLObject, SQLAlchemy  | Unit tests, functional tests  | ZODB generations  | ACL-based  | Yes  | Yes  | Yes  | No
Zope 2  | Python  |  | Yes  | Pull  | Yes  | ZODB, SQLObject, SQLAlchemy  | Unit tests  |  | ACL-based  | Yes  | Yes  | CMFFormController  | No

### Ruby

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)

|
|
|
|
|
|
|
|
|
|
|

Ruby on Rails | Prototype, script.aculo.us, jQuery | ActiveRecord, Action Pack | Push  | Yes  | ActiveRecord  | Unit Tests, Functional Tests and Integration Tests  | Yes  | Plug-in  | Yes  | Yes  | Yes
Sinatra | No  | Yes  | Push  | No  | ORM-independent  | rack-test  | Yes  | through a Rack middleware  | Yes  | through a Rack middleware  | No

### Others

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)

|
|
|
|
|
|
|
|
|
|
|
|

AIDA/Web  | Smalltalk | Yes  | Yes  |  | Yes  | Gemstone/S, GLORP, more  | SUnit  |  | Yes  |  |  | Yes
Application Express | PL/SQL  | Yes  |  |  | Yes  |  |  | Yes  | Yes  |  |  | Yes
Flex  | ActionScript, MXML | Not by name but similar technology[47] |  |  |  |  | FlexUnit  |  |  |  |  |
Lift | Scala | Yes  | Yes  | Pull  | Yes  | Yes  | ScalaTest, Selenium[48] | Yes  | Yes  | Yes  | Yes  | Yes
Opa | Opa  | Yes  |  |  | Yes  | MongoDB |  |  | Yes  | Yes  | Yes  |
OpenACS  | Tcl | Yes  | Yes  |  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes  | Yes
Seaside | Smalltalk | jQuery, jQuery UI, Prototype JavaScript Framework, script.aculo.us, more  | Yes  |  | Yes  | GLORP, Gemstone/S, more  | Unit tests, SUnit  |  |  | No, intentionally  |  | 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

* Comparison of JavaScript-based web frameworks
* Comparison of shopping cart software
* Content management system
* Java view technologies and frameworks
* List of content management systems
* List of rich web application frameworks
* List of web service frameworks
* Mobile development framework

## References

1. ↑ "Version 4.11.2". Github. https://github.com/MarimerLLC/csla/releases/tag/v4.11.2.
2. ↑ "Download - Castle Project". http://www.castleproject.org/download/.
3. ↑ "CppCMS Blog". Blog.cppcms.com. http://blog.cppcms.com/.
4. ↑ "Release v1.8.4 · drogonframework/drogon" (in en). https://github.com/drogonframework/drogon/releases/tag/v1.8.4.
5. ↑ "Wt: Release v4.0.5". http://www.webtoolkit.eu/wt/doc/reference/html/Releasenotes.html.
6. ↑ "Releases · snapframework/snap" (in en). https://github.com/snapframework/snap/releases.
7. ↑ "Jwt: Release v3.4.0". 2019-07-31. https://www.webtoolkit.eu/jwt/latest/doc/javadoc/overview-summary.html.
8. ↑ "WaveMaker 10.1 Release Update – 19 August 2019". https://www.wavemaker.com/learn/wavemaker-release-notes.
9. ↑ "Antradar Downloads". 2023-11-24. http://www.antradar.com/download.php.
10. ↑ "Releases". github.com. https://github.com/kajona/kajonacms/releases.
11. ↑ "GitHub - laminas/laminas-mvc". 20 March 2019. https://github.com/laminas/laminas-mvc/tags.
12. ↑ "Nette Framework - first commit". 2014. https://github.com/nette/nette/commit/c13ed82c2f170f89cd380b399fe4528d50f064d7.
13. ↑ "Released version 3.1.0". January 2021. https://github.com/nette/nette/releases/tag/v3.1.0.
14. ↑ "Nette Framework Licence". 2014. https://github.com/nette/nette/blob/master/license.md.
15. ↑ "phalcon/cphalcon". github.com. https://github.com/phalcon/cphalcon/releases.
16. ↑ "Releases - popphp/popphp-framework". github.com. 2019-10-17. https://github.com/popphp/popphp-framework/releases.
17. ↑ "License of PRADO". pradosoft.com. 2013. http://www.pradosoft.com/license/.
18. ↑ "Stable Download". silverstripe.org. https://www.silverstripe.org/download. Retrieved 2020-02-18.
19. ↑ "Padrino 0.14.4 release". https://padrinorb.com/blog/padrino-0-14-4/.
20. ↑ "The Opa Blog: Some great news on Opa". Blog.opalang.org. http://blog.opalang.org/2013/02/some-great-news-on-opa.html.
21. ↑ "OpenACS Home". https://openacs.org/.
22. ↑ "Releases · SeasideSt/Seaside · GitHub". 7 February 2021. https://github.com/SeasideSt/Seaside/releases.
23. ↑ "Grails Plugin: Spring Security Core Plugin". Grails.org. 2012-04-06. http://grails.org/plugin/spring-security-core.
24. ↑ "Grails Plugin: Apache Shiro Integration for Grails". Grails.org. 2012-04-11. http://grails.org/plugin/shiro.
25. ↑ "Installation - 4.x". https://book.cakephp.org/4/en/installation.html.
26. ↑ "Server Requirements — CodeIgniter 4 documentation". https://codeigniter.com/user_guide/intro/requirements.html.
27. ↑ "Server Requirements — CodeIgniter 3.1.10 documentation". https://www.codeigniter.com/user_guide/general/requirements.html.
28. ↑ "Language helper included, must activate & set desired language by parsing HTTP headers". http://codeigniter.com/user_guide/libraries/language.html.
29. ↑ "Change Log : CodeIgniter User Guide". EllisLab, Inc.. http://codeigniter.com/user_guide/changelog.html.
30. ↑ "Getting Started - Fat-Free Framework for PHP". https://fatfreeframework.com/3.7/getting-started.
31. ↑ "Requirements - FuelPHP Documentation". https://fuelphp.com/docs/requirements.html.
32. ↑ "Replacing nano.js in Gyroscope". antradar.com. 2014-05-20. http://www.antradar.com/blog-replacing-nano-js-gyroscope.
33. ↑ "Kajona 6.2 shifts the focus to PHP 7". https://www.kajona.de/en/News/newsdetails.Kajona-V6-2-released..4a50c7d593862d586042.html.
34. ↑ "Zend/Laminas Drops PHP support prior to 7.3" (in en). https://github.com/laminas/laminas-migration/pull/55.
35. ↑ "Laravel - The PHP Framework For Web Artisans" (in en). https://laravel.com/.
36. ↑ Nette Foundation; c 2008. "Download | Nette Framework". Nette.org. https://nette.org/en/download.
37. ↑ "Phalcon v5 supports only PHP 7.4 and above.". https://docs.phalcon.io/5.0/en/installation.
38. ↑ "PRADO PHP Framework". http://www.pradoframework.net/site/.
39. ↑ 39.0 39.1 39.2 39.3 "PRADO QuickStart Tutorial". Pradosoft.com. http://www.pradosoft.com/demos/quickstart/?page=ActiveControls.Home.
40. ↑ "Server Requirements" (in en). https://docs.silverstripe.org/en/4/getting_started/server_requirements/.
41. ↑ "Smart.Framework: a practical, modern and high performance PHP / JavaScript Framework for Web featuring Middlewares + MVC". 2022-01-07. https://github.com/unix-world/Smart.Framework.
42. ↑ "Installing & Setting up the Symfony Framework (Symfony Docs)" (in en). https://symfony.com/doc/current/setup.html.
43. ↑ "Download TYPO3 - get.typo3.org". https://get.typo3.org/.
44. ↑ "Getting Started: Installing Yii" (in en). https://www.yiiframework.com/doc/guide/2.0/en/start-installation.
45. ↑ "Initial Prototyping: Scaffolding | Building a Blog System Using Yii | Yii PHP Framework". Yiiframework.com. http://www.yiiframework.com/doc/blog/1.1/en/prototype.scaffold.
46. ↑ "invalid function (default/images)". Web2py.com. http://web2py.com/init/default/what.
47. ↑ "URLRequest - Adobe ActionScript® 3 (AS3 ) API Reference". Livedocs.adobe.com. 2013-07-01. http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html.
48. ↑ "ScalaTest". ScalaTest. http://www.scalatest.org/user_guide/using_selenium.

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Comparison of server-side web frameworks. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Comparison_of_server-side_web_frameworks&oldid=836693"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template