Jump to content

Comparison of server-side web frameworks

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 81.214.255.101 (talk) at 13:19, 23 February 2011 (→‎Others). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

This is a comparison of notable web application frameworks.

General

Basic information about each framework.

Perl

Project Current Stable Version Release Date License
Catalyst 5.80029 2010-10-03 Artistic / GPL
Dancer 1.2000 2010-11-18 Artistic / GPL
Interchange 5.6.2 2009-09-17 GPL
Mason 1.45 2010-04-03 Artistic / GPL
Maypole 2.13 2008-04-17 Artistic / GPL
Reaction 0.002000 2009-04-29 Artistic / GPL

PHP

Project Current Stable Version Release Date License
CakePHP 1.3.7 2011-01-19 MIT
CodeIgniter 2.0.0 2011-01-28 BSD-style
DooPHP 1.3 BSD
Drupal 7.0 2011-01-05 GPL
Horde 3.3.11 2010-11-22[1] LGPL
Joomla! 1.6 2011-01-10 GPL
Kajona 3.3.1 2010-08-29 LGPL
Kohana 3.0.9 2010-12-31 BSD
Lithium 0.9.9 2010-11-05 BSD
Qcodo 0.4.20 2010-12-24[2] MIT
Sapphire 2.4.4 2010-12-21 BSD
Seagull 0.6.8 2010-12-03 BSD
symfony 1.4.9 2011-02-04 MIT
Yii 1.1.6 2011-01-16 BSD
Zend Framework 1.11.3 2011-02-01[3] BSD
Quick PHP 1.4.1 2011-02-15 Open source
Project Current Stable Version Release Date License

Java

Project Current Stable Version Release Date License
Apache Click 2.2.0 2010-05-22 Apache
Apache Cocoon 2.2.0 Apache
Apache Struts 2.2.1.1 2010-12-20 Apache
Apache Tapestry 5.2.4 2010-11-15 Apache
Apache Wicket 1.4.15 2010-12-23 Apache
AppFuse 2.0.2 Apache
Aranea 1.0.10 Apache
Eclipse RAP 1.2.0 Eclipse Public License
FormEngine 1.7 2010-11-26 MIT
Google Web Toolkit 2.1.0 2010-10-28 Apache
Hamlets 1.6 2010-01-29 BSD
IceFaces 2.0 2010-12-21 Mozilla Public License 1.1 (MPL)
ItsNat 1.0 AGPL / Proprietary
JavaServer Faces 2.0 2009-06-28
JBoss Seam 2.2.0 GA LGPL
JVx WebUI 0.8 2010-12-03 Apache 2.0
ManyDesigns Portofino 3.1.0 GPL v3
OpenLaszlo 4.1 Common Public License
OpenXava 4.0.1 2011-01-12 LGPL
Oracle ADF 11.1.1.4 Oracle Technology Network Developer License
Play 1.1 2010-11-02 Apache
RIFE 1.6.2 Apache
Shale 1.0.4 Apache
Sling 5 2009-05-14 Apache 2.0
SmartClient 8.0 2011-01-05 LGPL
Spring 3.0.5 2010-10-20 Apache
Stripes 1.5.4 2010-11-09 Apache
ThinWire 1.2 GPL
Vaadin(IT Mill Toolkit) 6.5.1 2011-02-11 Apache
Wavemaker 6.1.10 2010-06-14 Apache
WebObjects 5.4.3 Proprietary
WebWork 2.2.6 Apache
ZK 5.0.5 2010-11-02 LGPL
ztemplates 0.9.9.6 Apache

Python

Project Current Stable Version Release Date License
BlueBream 1.0 2011-01-18 ZPL
CherryPy 3.1.2 2009-04-12 BSD
CubicWeb 3.8.1 2010-04-28 LGPL
Django 1.2.3 2010-09-10[4] BSD
Flask 0.6 2010-07-27[5] BSD
Grok 1.1 2010-05-18 ZPL
Nagare 0.3.0 2010-12-14 BSD
Pyjamas 0.7 2010-04-25 Apache
Pylons 1.0.0 2010-05-28 BSD
Pyramid 1.0.0 2011-01-30 BSD
TurboGears 2.1 2010-11-19 MIT / LGPL
web2py 1.91.1 2010-12-21 LGPLv3
Webware 1.0.2 2009-06-07 Python License
Zope 2 2.12.10 2010-07-20 ZPL
Zope 3 3.4.1 2010-06-22 ZPL

Ruby

Project Current Stable Version Release Date License
Camping 2.1 2010-08-20 MIT
Merb 1.1.2 2010-06-17 MIT
Nitro 0.41 2006-12-12 BSD
Ruby on Rails 3.0 2010-08-29 MIT / Ruby
Ramaze 2010.06.18 2010-06-18 Ruby License
Sinatra 1.1.0 2010-10-24 MIT

CFML (ColdFusion)

Project Current Stable Version Release Date License
ColdBox Platform 3.0.0 2011-02-18 Apache v2
WireBox 1.0.0 2011-02-18 Apache v2
ColdFusion on Wheels 1.1.1 2010-11-21 Apache v2
ColdSpring 1.2 2008-09-12 Apache v2
Fusebox 5.5.1 2008-03-08 Apache
FW/1 1.2 2010-10-18 Apache v2
Mach-II 1.8.1 2010-09-20 GPLv3 with Classpath exception
Model-Glue 3.1.185 2009-08-11 Apache
onTap 3.3 2009-11-07 BSD

ASP.NET

Project Current Stable Version Language License
ASP.NET MVC 3.0 ASP.NET Ms-PL
BFC 7.40 ASP.NET Proprietary
Csla 3.7.0 C#, VB.NET Proprietary; Free to use for non-commercial and commercial applications.
DotNetNuke 5.6.0 ASP.NET MIT
MonoRail 2.0 ASP.NET Apache
OpenRasta 2.0 RC ASP.NET MIT
Vici MVC 2.0.1 ASP.NET MIT
Project Current Stable Version Language License

Other

Project Current Stable Version Language License
AIDA/Web 5.6 Smalltalk MIT
Application Express 4.0.1 PL/SQL Proprietary-Freeware
CppCMS 0.0.4 C++ LGPL
Flex 4.0 ActionScript, MXML MPL
Grails 1.3.6 Groovy (JVM) Apache
Helma 1.6.3 JavaScript Helma License version 2.0
Kepler 1.1 Lua MIT
Lift 2.2 Scala (JVM) Apache
Midgard 8.09 LTS PHP LGPL
Morfik 2.3.0.6 Basic,Pascal,Java,C# Proprietary&freeware
OpenACS 5.4.3 Tcl GPL
qooxdoo 1.2 JavaScript LGPL or Eclipse Public License
Seaside 3.0 Smalltalk MIT
SproutCore 1.0 BETA JavaScript MIT
Compojure 0.3.2 Clojure Eclipse Public License
Wavemaker 4.0.2 JavaScript AGPL
Wt 3.1.7 C++ GPL and proprietary
Project Current Stable Version Language License

Comparison of Features

ASP.NET

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)
ASP.NET MVC Yes Yes Push ORM-independent Unit Tests ASP.NET Forms Auth pluggable (default is WebForms) Yes Yes (client-side via plugins)
BFC Yes Not mandatory Push & Pull Yes through active data dictionary Unit Tests SQL Server, Oracle, DB2, Sybase, MySQL security groups and rules Yes metadata and result sets data dictionary-driven
DotNetNuke Yes No Pull Yes SubSonic, NHibernate Unit Tests Yes ACL-based (OpenID, LiveID, Active Directory, LDAP, CardSpace, ASP.NET Forms Auth) Yes Pluggable ASP.NET Validators, built-in API
MonoRail Prototype Active record pattern Push Yes Active record pattern Unit Tests via ASP.NET Forms Authentication Yes Yes Yes
OpenRasta No Yes Push Yes ORM-independent Unit Tests No HTTP Digest and via ASP.NET Forms Authentication or host environment Yes No No
Vici MVC Yes Yes Push Yes ORM-independent Unit Tests via ASP.NET Forms Authentication Yes No Yes
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)

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 Push Yes Limited, SQL library No No No Yes Yes Yes
Wt Yes Yes Push & Pull Yes Wt::Dbo Boost.test Yes Yes Yes Yes
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)

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 Yes via MockBox, MXUnit, and others via Plugin Yes Yes Yes via Plugin
ColdFusion on Wheels Yes Yes via Plugin Yes Yes integrated RocketUnit via Plugin Yes via Plugin Yes
Fusebox via CF or any JavaScript Library optional Push No, custom via lexicons for Transfer and Reactor via MXUnit, and others No via plugins via lexicon for ColdSpring No
Mach-II via CF or any JavaScript Library Yes Push via plugin Transfer, Reactor, Hibernate via MXUnit, and others via plugins ColdSpring
Model-Glue via CF or any JavaScript Library Yes Push Transfer, Reactor, Hibernate via MXUnit, and others via plugins ColdSpring
onTap native features + Prototype + script.aculo.us optional Push Yes DataFaucet [2] via MXUnit, and others DataFaucet has potential - supports multiple db platforms Members onTap Plugin Yes Yes Yes
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)

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 and Cayenne Yes pluggable Velocity and JSP Cached Templates Built-in validation
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 Wicket Java Yes, extensions for YUI, ExtJS and more Modular event driven Pull Yes Yes, with extensions Yes, mock objects, unit and integration tests through an extension Yes Yes Yes Yes
Aranea Java Yes Pull Yes Yes mapping-applications using contributions from users to advantage
FormEngine Java Yes Yes own connector API AJAX validation on server and form state update
ItsNat Java Yes event driven Push using Java i18n external and built-in pluggable pure HTML/SVG page caching normal Java
JavaServer Faces Java Yes Yes Pull Yes, with extensions JUnit Yes Yes Yes Yes
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
OpenXava Java Yes Model Driven Yes JPA, Hibernate and EJB2 CMP JUnit Hibernate tools uses JSR-168 portal security UI is automatically generated uses portal and JPA caching Yes
Play Java Yes Yes Push and Pull Yes JPA, Hibernate JUnit, Selenium Separate module via Core Security module Yes Yes Server-side validation
RIFE Java DWR Yes Push & Pull Yes Yes Out of container testing Yes Yes Integration with Terracotta Yes
Spring Java Yes Yes Yes Hibernate, iBatis, etc Yes, mock objects & unit tests Spring Security (formerly Acegi) Commons Tiles, Velocity, etc. ehcache etc. Commons Validator
Stripes Java Yes Yes Push Yes JPA, Hibernate Yes framework extension Yes Yes
Tapestry Java Yes Yes Pull Yes integrated with Hibernate (tapestry-hibernate module) tapestry5-acegi library Yes built-in validation system
Vaadin Java GWT Pull Yes Yes Yes Yes Yes
Wavemaker JavaScript (client), Java (server) Dojo Toolkit Yes Push Dojo Toolkit Hibernate (Java) JUnit Hibernate (Java) Spring Security, Acegi, Role-based access control Dojo Toolkit Dojo Toolkit Regular expression, schema-driven validation
WebObjects Java Yes Yes Push & Pull Yes EOF WOUnit (JUnit), TestNG, Selenium in Project WONDER Yes Yes Yes
ztemplates Java JDK 1.5 or newer integrates YUI, Google etc. with annotations Yes Push, multiple actions per URL standard Java use any J2EE ORM framework Unit Tests annotation based Velocity, FreeMarker, JSP, others pluggable AJAX validation on server and form state update (YUI, JSON)
Google Web Toolkit Java, JavaScript Yes Yes JPA with RequestFactory JUnit (too early), jsUnit (too difficult), Selenium (best) No
ZK Java, ZUML JQuery Yes Push & Pull Yes any J2EE ORM framework Yes HibernateUtil & SpringUtil Spring Security Macro components & Composition Yes client and server
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)

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)
CakePHP PHP Prototype/script.aculo.us, jQuery/jQuery UI, MooTools/MooTools more Yes Push Yes Active record pattern (CakePHP 1.x), Data Mapper Pattern (CakePHP 2.x) Unit Tests, Object Mocking, Fixtures, Code Coverage, Memory Analysis with SimpleTest and XDebug Yes ACL-based Themes, Layouts, Views and Elements Memcache, XCache, APC, File Validation and Security
CodeIgniter PHP >= 5.1 Prototype/script.aculo.us, jQuery/jQuery UI Modified active record pattern Push Plugins No Unit Tests No Yes Yes Yes Yes
Drupal PHP jQuery/jQuery UI, more No Push & Pull Yes Optional module SimpleTest Yes Yes Yes Memcache, APC, Varnish and more Yes
eZ Components PHP No Yes Push Yes Yes Yes Yes Yes Yes Yes Yes
Fusebox PHP Yes Not mandatory Push No, custom Multiple plugins available via qforms or built in PHP validation
Joomla PHP >= 5.1.x Yes Mootools 1.2 Yes Push & Pull Yes Yes Unit Tests No Yes Yes Yes No
Kajona PHP 5 Yes Yes Yes Yes Yes Unit Tests Automatic Yes Yes Yes Yes
Kohana PHP 5 Yes MVC, HMVC Push Yes Yes PHPUnit, (as module) Yes Plugin Yes APC, Database, eAccelerator, File, Memcache, XCache Yes
Midgard PHP jQuery MidCOM Pull Yes Midgard PHPUnit datagard ACL-based PHP and TAL Memcache Yes
Qcodo PHP 5 built-in QControl Push Yes XML-based Inherent QForm and QControl Yes Yes
RedSpark PHP 5 jQuery Yes Push & Pull Yes Yes Yes Yes ACL-based Yes Yes Yes
Symfony PHP 5 Prototype, script.aculo.us, Unobtrusive Ajax with UJS and PJS plugins Yes Push Yes Propel, Doctrine (YAML) Yes Plugin exists (alpha code) Plugin Yes Yes Yes
Yii PHP 5 (>=5.1.0) jQuery, jQuery UI, own components, plugins Yes Push & Pull Yes Database Access Objects (DAO), Active Record, plugins PHPUnit, Selenium Yes ACL-based, RBAC-based, plugins PHP-based, PRADO-like, plugins APC, Database, eAccelerator, File, Memcache, WinCache, XCache, Zend Platform Yes
Zend Framework PHP 5 (>=5.2.4) Toolkit-independent Yes Push & Pull Yes Table and Row data gateway Unit Tests Yes ACL-based Yes Yes Yes
SilverStripe (Sapphire) PHP 5 (>=5.2) jQuery/jQuery UI Active record pattern Push & Pull Yes Active record pattern Unit Tests (Automatic) incl. OpenID (object oriented) Yes Yes
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

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 Yes controller & URL dispatching Yes ORM agnostic use stdlib's unittest and doctest depends on ORM Templating engine agnostic Yes Form validation engine agnostic Yes
Django Python Django uses jquery in the admin, but is js-agnostic in the user templates Full Stack Push Yes Django ORM Yes reusable applications which might get merged into core e.g. South ACL-based Django Template Language Cache Framework Django Forms API No
Grok Python Yes Yes Pull Yes OODBMS called ZODB, SQLAlchemy, Storm Unit Tests, Functional Tests ZODB Generations Yes Yes Yes Yes
Pyjamas 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, etc.) Beaker cache (memory, memcached, file, databases) preferred formencode No
Pyramid Python No Yes Push Yes ORM-agnostic Yes depends on ORM Yes pluggable (Chameleon and Genshi; others may be plugged in) Beaker cache (memory, memcached, file, databases) preferred formencode No
TurboGears Python Toolkit-independent, provides support via JSON Full stack, best-of-breed based Push Yes SQLAlchemy nose No Repoze.what & Repoze.who Genshi, additional plugins available Support for memcached, and any WSGI compliant system ToscaWidgets, utilizing FormEncode No
web2py Python Yes Yes Push Yes Yes Yes Yes Yes Yes Yes Yes No
Webware Python No Optional Pull No Yes Yes No Yes Yes No No No
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)
Camping No Yes Push No Active record pattern via Mosquito Yes No Yes No No
Nitro jQuery Yes Push Yes Og RSpec (automatic) Yes Yes Yes Yes
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 No Yes through a Rack middleware No
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)

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 Prototype, script.aculo.us Yes Gemstone/S, GLORP, etc. SUnit Yes
Application Express PL/SQL Yes Yes Yes Yes Yes
Catalyst Perl Toolkit-independent (REST & JSON support, specific plugins for Prototype etc.) Yes Push in its most common usage Yes DBIx::Class, Rose::DB::Object, etc. It supports perl testing standards, Test Anything Protocol (TAP) [6] ACL-based, external engines, etc. Template::Toolkit, HTML::Template, HTML::Mason, PHP and any existing Perl template engine Cache, Memcached, shared memory, etc. HTML::FormHandler HTML::FormFu, HTML::FormValidator, etc.
Dancer Perl Yes Yes Push Yes DBIx::Class, ORMesque Yes Template::Toolkit, HTML::Mason, Text::MicroTemplate, any existing Perl template engine Cache, Memcached, shared memory, etc. DataFu, any existing Perl form validation software
Flex Actionscript, MXML Not by name but similar technology [7] FlexUnit
Formspider PL/SQL Yes Yes Pull Yes Yes Yes
Grails Groovy Yes Active record pattern Push Yes GORM, Hibernate Unit Test, Integration test, Functional test multiple plugins(autobase, dbmigrate, etc.) Spring Security plugin Yes Yes Yes
Kepler Lua Yes
Lift Scala Yes Yes Pull Yes Yes Yes Yes Yes Yes Yes
OpenACS Tcl Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
qooxdoo JavaScript Yes Data binding i18n Testrunner Form Validation
Seaside Smalltalk jQuery, jQuery UI, Prototype, script.aculo.us, etc. Yes Yes GLORP, Gemstone/S, etc. Unit Tests, SUnit No, intentionally Magritte
SproutCore JavaScript Yes Yes
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)

References

See also