CINXE.COM
Comparison of server-side web frameworks - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Comparison of server-side web frameworks - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"129e42e4-25a3-4dde-992c-4803086747d2","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Comparison_of_server-side_web_frameworks","wgTitle":"Comparison of server-side web frameworks","wgCurRevisionId":1277277777,"wgRevisionId":1277277777,"wgArticleId":9334615,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["CS1 errors: missing title","CS1 errors: bare URL","Articles with short description","Short description is different from Wikidata","Web frameworks","Network software comparisons"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Comparison_of_server-side_web_frameworks","wgRelevantArticleId":9334615,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":60000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q441675","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false}; RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.tablesorter.styles":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","site","mediawiki.page.ready","jquery.tablesorter","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cjquery.tablesorter.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.19"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Comparison of server-side web frameworks - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Comparison_of_server-side_web_frameworks"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Comparison_of_server-side_web_frameworks"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Comparison_of_server-side_web_frameworks rootpage-Comparison_of_server-side_web_frameworks skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages"><span>Special pages</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Comparison+of+server-side+web+frameworks" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Comparison+of+server-side+web+frameworks" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Comparison+of+server-side+web+frameworks" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Comparison+of+server-side+web+frameworks" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-General" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#General"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>General</span> </div> </a> <button aria-controls="toc-General-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle General subsection</span> </button> <ul id="toc-General-sublist" class="vector-toc-list"> <li id="toc-ASP.NET" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#ASP.NET"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>ASP.NET</span> </div> </a> <ul id="toc-ASP.NET-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-C++" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#C++"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>C++</span> </div> </a> <ul id="toc-C++-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-ColdFusion_Markup_Language_(CFML)" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#ColdFusion_Markup_Language_(CFML)"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3</span> <span>ColdFusion Markup Language (CFML)</span> </div> </a> <ul id="toc-ColdFusion_Markup_Language_(CFML)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Elixir" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Elixir"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.4</span> <span>Elixir</span> </div> </a> <ul id="toc-Elixir-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Haskell" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Haskell"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.5</span> <span>Haskell</span> </div> </a> <ul id="toc-Haskell-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Java"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6</span> <span>Java</span> </div> </a> <ul id="toc-Java-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-JavaScript" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#JavaScript"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.7</span> <span>JavaScript</span> </div> </a> <ul id="toc-JavaScript-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Perl" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Perl"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.8</span> <span>Perl</span> </div> </a> <ul id="toc-Perl-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-PHP" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#PHP"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.9</span> <span>PHP</span> </div> </a> <ul id="toc-PHP-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Python" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Python"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.10</span> <span>Python</span> </div> </a> <ul id="toc-Python-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Ruby" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Ruby"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.11</span> <span>Ruby</span> </div> </a> <ul id="toc-Ruby-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Scala" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Scala"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.12</span> <span>Scala</span> </div> </a> <ul id="toc-Scala-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Others" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Others"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.13</span> <span>Others</span> </div> </a> <ul id="toc-Others-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Comparison_of_features" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Comparison_of_features"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Comparison of features</span> </div> </a> <button aria-controls="toc-Comparison_of_features-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Comparison of features subsection</span> </button> <ul id="toc-Comparison_of_features-sublist" class="vector-toc-list"> <li id="toc-C++_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#C++_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>C++</span> </div> </a> <ul id="toc-C++_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-ColdFusion_Markup_Language_(CFML)_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#ColdFusion_Markup_Language_(CFML)_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>ColdFusion Markup Language (CFML)</span> </div> </a> <ul id="toc-ColdFusion_Markup_Language_(CFML)_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Java_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Java</span> </div> </a> <ul id="toc-Java_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-JavaScript_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#JavaScript_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4</span> <span>JavaScript</span> </div> </a> <ul id="toc-JavaScript_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Perl_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Perl_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5</span> <span>Perl</span> </div> </a> <ul id="toc-Perl_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-PHP_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#PHP_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.6</span> <span>PHP</span> </div> </a> <ul id="toc-PHP_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Python_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Python_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.7</span> <span>Python</span> </div> </a> <ul id="toc-Python_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Ruby_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Ruby_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.8</span> <span>Ruby</span> </div> </a> <ul id="toc-Ruby_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Others_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Others_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.9</span> <span>Others</span> </div> </a> <ul id="toc-Others_2-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Comparison of server-side web frameworks</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 3 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-3" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">3 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Liste_von_Webframeworks" title="Liste von Webframeworks – German" lang="de" hreflang="de" data-title="Liste von Webframeworks" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Kategori:PHP-ramverk" title="Kategori:PHP-ramverk – Swedish" lang="sv" hreflang="sv" data-title="Kategori:PHP-ramverk" data-language-autonym="Svenska" data-language-local-name="Swedish" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E5%90%84%E7%B6%B2%E9%A0%81%E6%A1%86%E6%9E%B6%E7%B3%BB%E7%B5%B1%E7%9A%84%E6%AF%94%E8%BC%83" title="各網頁框架系統的比較 – Chinese" lang="zh" hreflang="zh" data-title="各網頁框架系統的比較" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q441675#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Comparison_of_server-side_web_frameworks" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Comparison_of_server-side_web_frameworks" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Comparison_of_server-side_web_frameworks"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Comparison_of_server-side_web_frameworks"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Comparison_of_server-side_web_frameworks" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Comparison_of_server-side_web_frameworks" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&oldid=1277277777" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Comparison_of_server-side_web_frameworks&id=1277277777&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FComparison_of_server-side_web_frameworks"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FComparison_of_server-side_web_frameworks"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Comparison_of_server-side_web_frameworks&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:PHP_frameworks" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q441675" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><p class="mw-empty-elt"> </p> <style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1246091330">.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}</style><table class="sidebar nomobile nowraplinks" style="width:115px"><tbody><tr><th class="sidebar-title"><a href="/wiki/Comparison_of_programming_languages" title="Comparison of programming languages">Comparison of<br />programming languages</a></th></tr><tr><td class="sidebar-content" style="text-align: left"> <ul><li><a href="/wiki/Comparison_of_programming_languages" title="Comparison of programming languages">General comparison</a></li> <li><a href="/wiki/Assignment_(computer_science)#Notation" title="Assignment (computer science)">Assignment</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(syntax)" title="Comparison of programming languages (syntax)">Basic syntax</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(basic_instructions)" title="Comparison of programming languages (basic instructions)">Basic instructions</a></li> <li><a href="/wiki/Comment_(computer_programming)#Comparison" title="Comment (computer programming)">Comments</a></li> <li>Control flow <ul><li><a href="/wiki/Foreach_loop#Language_support" title="Foreach loop">Foreach loops</a></li> <li><a href="/wiki/While_loop#Demonstrating_while_loops" title="While loop">While loops</a></li> <li><a href="/wiki/For_loop#Timeline_of_the_for-loop_syntax_in_various_programming_languages" title="For loop">For loops</a></li> <li><a href="/wiki/Do_while_loop#Demonstrating_do_while_loops" title="Do while loop">Do-while</a></li></ul></li> <li><a href="/wiki/Exception_handling_syntax" title="Exception handling syntax">Exception handling</a></li> <li><a href="/wiki/Enumerated_type#Syntax_in_several_programming_languages" title="Enumerated type">Enumerated types</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(algebraic_data_type)" title="Comparison of programming languages (algebraic data type)">Algebraic data types</a></li> <li><a href="/wiki/Generator_(computer_programming)#Timeline" title="Generator (computer programming)">Generators</a></li> <li><a href="/wiki/Anonymous_function#Examples" title="Anonymous function">Anonymous functions</a></li> <li><a href="/wiki/Ternary_conditional_operator" title="Ternary conditional operator">Conditional expressions</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(array)" title="Comparison of programming languages (array)">Arrays</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(associative_arrays)" class="mw-redirect" title="Comparison of programming languages (associative arrays)">Associative arrays</a></li> <li><a href="/wiki/Scope_(computer_science)#By_language" title="Scope (computer science)">Scope</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(strings)" title="Comparison of programming languages (strings)">String operations</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(string_functions)" title="Comparison of programming languages (string functions)">String functions</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(higher-order_functions)" class="mw-redirect" title="Comparison of programming languages (higher-order functions)">Higher-order functions</a> <ul><li><a href="/wiki/Filter_(higher-order_function)#Language_comparison" title="Filter (higher-order function)">Filter</a></li> <li><a href="/wiki/Fold_(higher-order_function)#In_various_languages" title="Fold (higher-order function)">Fold</a></li> <li><a href="/wiki/Map_(higher-order_function)#Language_comparison" title="Map (higher-order function)">Map</a></li></ul></li> <li><a href="/wiki/Comparison_of_programming_languages_by_type_system" title="Comparison of programming languages by type system">Type systems</a> <ul><li><a href="/wiki/Comparison_of_programming_languages_with_dependent_types" class="mw-redirect" title="Comparison of programming languages with dependent types">Dependent types</a></li></ul></li> <li><a href="/wiki/Comparison_of_programming_languages_(list_comprehension)" title="Comparison of programming languages (list comprehension)">List comprehension</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(object-oriented_programming)" title="Comparison of programming languages (object-oriented programming)">Object-oriented programming</a></li> <li><a href="/wiki/Constructor_(object-oriented_programming)" title="Constructor (object-oriented programming)">Object-oriented constructors</a></li> <li><a href="/wiki/Comparison_of_programming_languages_(operators)" class="mw-redirect" title="Comparison of programming languages (operators)">Operators</a> <ul><li><a href="/wiki/Ternary_conditional_operator#Usage" title="Ternary conditional operator">Ternary conditional operator</a></li> <li><a href="/wiki/Null_coalescing_operator#Examples_by_languages" title="Null coalescing operator">Null coalescing operators</a></li> <li><a href="/wiki/Safe_navigation_operator#Examples" title="Safe navigation operator">Safe navigation operators</a></li> <li><a href="/wiki/Modulo_operation#In_programming_languages" class="mw-redirect" title="Modulo operation">Modulo operators</a></li></ul></li></ul></td> </tr><tr><td class="sidebar-content" style="text-align: left"> <ul><li><a href="/wiki/Evaluation_strategy" title="Evaluation strategy">Evaluation strategy</a></li> <li><a href="https://en.wikibooks.org/wiki/Computer_Programming/Hello_world" class="extiw" title="b:Computer Programming/Hello world">List of "Hello World" programs</a></li></ul></td> </tr><tr><td class="sidebar-content" style="text-align: left"> <hr /> <div class="collapsible-list mw-collapsible mw-collapsed" style="text-align: left;"> <div style="line-height: 1.6em; font-weight: bold;"><div>Comparison of individual<br />languages</div></div> <ul class="mw-collapsible-content" style="margin-top: 0; margin-bottom: 0; line-height: inherit;"><li style="line-height: inherit; margin: 0"><a href="/wiki/ALGOL_58#ALGOL_58's_influence_on_ALGOL_60" title="ALGOL 58">ALGOL 58's influence on ALGOL 60</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/ALGOL_60#Comparisons_with_other_languages" title="ALGOL 60">ALGOL 60: Comparisons with other languages</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/ALGOL_68#Comparisons_with_other_languages" title="ALGOL 68">ALGOL 68: Comparisons with other languages</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/Compatibility_of_C_and_C%2B%2B" title="Compatibility of C and C++">Compatibility of C and C++</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/Comparison_of_Pascal_and_Delphi" title="Comparison of Pascal and Delphi">Comparison of Pascal and Borland Delphi</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/Comparison_of_Object_Pascal_and_C" class="mw-redirect" title="Comparison of Object Pascal and C">Comparison of Object Pascal and C</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/Comparison_of_Pascal_and_C" title="Comparison of Pascal and C">Comparison of Pascal and C</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/Comparison_of_Java_and_C%2B%2B" title="Comparison of Java and C++">Comparison of Java and C++</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/Comparison_of_C_Sharp_and_Java" title="Comparison of C Sharp and Java">Comparison of C# and Java</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET" title="Comparison of C Sharp and Visual Basic .NET">Comparison of C# and Visual Basic .NET</a> </li><li style="line-height: inherit; margin: 0"><a href="/wiki/Comparison_of_Visual_Basic_and_Visual_Basic_.NET" title="Comparison of Visual Basic and Visual Basic .NET">Comparison of Visual Basic and Visual Basic .NET</a> </li></ul> </div></td> </tr><tr><td class="sidebar-navbar"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Comparison_of_programming_languages" title="Template:Comparison of programming languages"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Comparison_of_programming_languages" title="Template talk:Comparison of programming languages"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Comparison_of_programming_languages" title="Special:EditPage/Template:Comparison of programming languages"><abbr title="Edit this template">e</abbr></a></li></ul></div></td></tr></tbody></table> <p>This is a comparison of notable <b><a href="/wiki/Web_framework" title="Web framework">web frameworks</a></b>, software used to build and deploy web applications. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="General">General</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=1" title="Edit section: General"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Basic information about each framework. </p><p>Systems listed on a light purple background are no longer in active development. </p> <div class="mw-heading mw-heading3"><h3 id="ASP.NET">ASP.NET</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=2" title="Edit section: ASP.NET"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a> and <a href="/wiki/List_of_CLI_languages" title="List of CLI languages">List of CLI languages</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/ASP.NET_Dynamic_Data" title="ASP.NET Dynamic Data">ASP.NET Dynamic Data</a> </th> <td> </td> <td> </td> <td> </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Base_One_Foundation_Component_Library" title="Base One Foundation Component Library">Base One Foundation Component Library</a> (BFC) </th> <td>7.51 </td> <td>2018-06-01 </td> <td style="background: #E7E7FF; color:black; vertical-align: middle; text-align: center;" class="table-proprietary"><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Component-based_Scalable_Logical_Architecture" title="Component-based Scalable Logical Architecture">Component-based Scalable Logical Architecture</a> (CSLA) </th> <td>4.11.2 </td> <td>2019-07-31<sup id="cite_ref-csla_release_1-0" class="reference"><a href="#cite_note-csla_release-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">MIT </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/MonoRail_(software)" title="MonoRail (software)">MonoRail</a> </th> <td>2.1 </td> <td>2011-03-17<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="C++"><span id="C.2B.2B"></span>C++</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=3" title="Edit section: C++"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/C%2B%2B" title="C++">C++</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/CppCMS" title="CppCMS">CppCMS</a> </th> <td>1.2.1 </td> <td>2018-05-18<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Drogon_(software)" title="Drogon (software)">Drogon</a> </th> <td>1.9.5 </td> <td>2024-06-08<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/POCO_C%2B%2B_Libraries" title="POCO C++ Libraries">Poco</a> </th> <td>1.13.3<sup id="cite_ref-POCO_C++_Libraries_release_5-0" class="reference"><a href="#cite_note-POCO_C++_Libraries_release-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> </td> <td>2024-04-06<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:POCO_C%2B%2B_Libraries_version&action=edit">[±]</a></small> </td> <td><a href="/wiki/Boost_Software_License" class="mw-redirect" title="Boost Software License">Boost Software License</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Wt_(web_toolkit)" title="Wt (web toolkit)">Wt</a> </th> <td>4.10.4 </td> <td>2024-03-06<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> </td> <td><a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GPL</a>, <a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="ColdFusion_Markup_Language_(CFML)"><span id="ColdFusion_Markup_Language_.28CFML.29"></span>ColdFusion Markup Language (CFML)</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=4" title="Edit section: ColdFusion Markup Language (CFML)"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/ColdFusion_Markup_Language" title="ColdFusion Markup Language">ColdFusion Markup Language</a> and <a href="/wiki/Adobe_ColdFusion" title="Adobe ColdFusion">Adobe ColdFusion</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/ColdBox_Platform" title="ColdBox Platform">ColdBox Platform</a> </th> <td>7.3.0<sup id="cite_ref-Coldbox_Platform_release_7-0" class="reference"><a href="#cite_note-Coldbox_Platform_release-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> </td> <td>2024-05-14<a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:ColdBox_Platform_version&action=edit">[±]</a> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/Apache_License" title="Apache License">Apache</a> v2 </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Elixir">Elixir</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=5" title="Edit section: Elixir"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/Elixir_(programming_language)" title="Elixir (programming language)">Elixir (programming language)</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Phoenix_(web_framework)" title="Phoenix (web framework)">Phoenix</a> </th> <td>1.7.14<sup id="cite_ref-wikidata-28a378555c5b7ef6dae071ad001ba3d91f9a04cc-v18_8-0" class="reference"><a href="#cite_note-wikidata-28a378555c5b7ef6dae071ad001ba3d91f9a04cc-v18-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q55629889?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-06-18; 8 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Haskell">Haskell</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=6" title="Edit section: Haskell"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/Haskell" title="Haskell">Haskell</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Snap_(web_framework)" title="Snap (web framework)">Snap</a> </th> <td>1.1.3.2<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </td> <td>2023-07-19 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/BSD-3" class="mw-redirect" title="BSD-3">BSD-3</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Yesod_(web_framework)" title="Yesod (web framework)">Yesod</a> </th> <td>1.6.24.5<sup id="cite_ref-wikidata-b89a2fc84144e81baf0e6998e48da77e300a5d39-v18_10-0" class="reference"><a href="#cite_note-wikidata-b89a2fc84144e81baf0e6998e48da77e300a5d39-v18-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q8052925?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2023-09-14; 17 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Java">Java</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=7" title="Edit section: Java"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java (programming language)</a> and <a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java (software platform)</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/License" title="License">License</a> </th></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Apache_Click" title="Apache Click">Apache Click</a> </th> <td>2.3.0 </td> <td>2011-03-27 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/Apache_Software_License" class="mw-redirect" title="Apache Software License">Apache</a> 2.0 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_OFBiz" title="Apache OFBiz">Apache OFBiz</a> </th> <td>18.12.17<sup id="cite_ref-wikidata-d44f238f83de7af2e27b9908caae9d2514e29b04-v18_11-0" class="reference"><a href="#cite_note-wikidata-d44f238f83de7af2e27b9908caae9d2514e29b04-v18-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q616979?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-11-11; 3 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Shale_Framework_(software)" class="mw-redirect" title="Shale Framework (software)">Apache Shale</a> </th> <td>1.0.4 </td> <td>2007-12-19 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Sling" title="Apache Sling">Apache Sling</a> </th> <td>12 </td> <td>2022-03-18 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Struts" title="Apache Struts">Apache Struts</a> </th> <td>7.0.0<sup id="cite_ref-wikidata-b0fb8b0d3c18b4c5307c1a65cb7e1dc6d382210a-v18_12-0" class="reference"><a href="#cite_note-wikidata-b0fb8b0d3c18b4c5307c1a65cb7e1dc6d382210a-v18-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q900957?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-12-11; 2 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Tapestry" title="Apache Tapestry">Apache Tapestry</a> </th> <td>5.8.4<sup id="cite_ref-wikidata-58b52d0c2d06efd3bf5fbbf98f9542844e0fc25f-v18_13-0" class="reference"><a href="#cite_note-wikidata-58b52d0c2d06efd3bf5fbbf98f9542844e0fc25f-v18-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q617093?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-02-06; 13 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Wicket" title="Apache Wicket">Apache Wicket</a> </th> <td>10.0.0<sup id="cite_ref-wikidata-f0fa2b8fb06ccb39dffd835af4cb36f7a3e1944e-v18_14-0" class="reference"><a href="#cite_note-wikidata-f0fa2b8fb06ccb39dffd835af4cb36f7a3e1944e-v18-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q617162?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-03-11; 11 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/AppFuse" title="AppFuse">AppFuse</a> </th> <td>3.5.0 </td> <td>2015-02-20 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Eclipse_Mojarra" class="mw-redirect" title="Eclipse Mojarra">Eclipse Mojarra</a> (Jakarta Faces RI) </th> <td>4.1.0<sup id="cite_ref-wikidata-96b5f86e069398a7e48c9fccbc4f544b42eec95a-v18_15-0" class="reference"><a href="#cite_note-wikidata-96b5f86e069398a7e48c9fccbc4f544b42eec95a-v18-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q729427?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-06-05; 9 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/Common_Development_and_Distribution_License" title="Common Development and Distribution License">CDDL</a>, <a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GNU GPL</a> 2, Apache 2.0 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Remote_Application_Platform" title="Remote Application Platform">Eclipse RAP</a> </th> <td>4.1 </td> <td>2024-12-04 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/Eclipse_Public_License" title="Eclipse Public License">Eclipse</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Grails_(framework)" title="Grails (framework)">Grails</a> </th> <td>6.2.3<sup id="cite_ref-wikidata-5bf8761488d646a046eecd83cb097c3a56c83eee-v18_16-0" class="reference"><a href="#cite_note-wikidata-5bf8761488d646a046eecd83cb097c3a56c83eee-v18-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q848544?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-01-03; 2 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Google_Web_Toolkit" title="Google Web Toolkit">Google Web Toolkit</a> </th> <td>2.9.0 </td> <td>2020-05-02 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/JBoss_Seam" title="JBoss Seam">JBoss Seam</a> </th> <td>3.1.0 final </td> <td>2012-01-13 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">GNU LGPL </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/JWt_(Java_web_toolkit)" title="JWt (Java web toolkit)">JWt</a> </th> <td>4.11.3<sup id="cite_ref-wikidata-6d8b12a0f4d315a8021f7a48370f74cc143122d5-v18_17-0" class="reference"><a href="#cite_note-wikidata-6d8b12a0f4d315a8021f7a48370f74cc143122d5-v18-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q17061295?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-02-19; 15 days ago </td> <td><a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GPL</a>, <a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Netty_(software)" title="Netty (software)">Netty</a> </th> <td>4.1.118<sup id="cite_ref-wikidata-d3ecb42fdcd51a638f01b6fb8ecfdd5a2c319512-v18_18-0" class="reference"><a href="#cite_note-wikidata-d3ecb42fdcd51a638f01b6fb8ecfdd5a2c319512-v18-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q6107820?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-02-10; 24 days ago </td> <td><a href="/wiki/Apache_License" title="Apache License">Apache License</a> 2.0 </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/OpenLaszlo" title="OpenLaszlo">OpenLaszlo</a> </th> <td>4.9.0 </td> <td>2010-10-21 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/Common_Public_License" title="Common Public License">CPL</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Oracle_Application_Development_Framework" title="Oracle Application Development Framework">Oracle ADF</a> </th> <td>12.2.1.4 </td> <td>2019-10-09 </td> <td>Oracle Technology Network Developer License </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Play_Framework" title="Play Framework">Play</a> </th> <td>3.0.3<sup id="cite_ref-wikidata-d4c72e4cec1464165ced6205d0a6640d4b74a0a7-v18_19-0" class="reference"><a href="#cite_note-wikidata-d4c72e4cec1464165ced6205d0a6640d4b74a0a7-v18-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q3392101?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-05-07; 9 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Spring_Framework" title="Spring Framework">Spring</a> </th> <td>6.2.1<sup id="cite_ref-wikidata-6e1a29939358dc7877a023288b9bc80a1369304a-v18_20-0" class="reference"><a href="#cite_note-wikidata-6e1a29939358dc7877a023288b9bc80a1369304a-v18-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q720314?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-12-12; 2 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Stripes_(framework)" title="Stripes (framework)">Stripes</a> </th> <td>1.6.0 </td> <td>2015-07-23 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Vaadin" title="Vaadin">Vaadin</a> </th> <td>24.6.0<sup id="cite_ref-wikidata-20814505e091a70001a066db3386e045573b8951-v18_21-0" class="reference"><a href="#cite_note-wikidata-20814505e091a70001a066db3386e045573b8951-v18-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q1400683?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-12-18; 2 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache 2.0 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Wavemaker" class="mw-redirect" title="Wavemaker">Wavemaker</a> </th> <td>11.6.0<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> </td> <td>2024-03-03 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/WebObjects" title="WebObjects">WebObjects</a> </th> <td>5.4.3 </td> <td>2008-09-15 </td> <td style="background: #E7E7FF; color:black; vertical-align: middle; text-align: center;" class="table-proprietary"><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="JavaScript">JavaScript</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=8" title="Edit section: JavaScript"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> and <a href="/wiki/Comparison_of_JavaScript-based_web_frameworks" title="Comparison of JavaScript-based web frameworks">Comparison of JavaScript-based web frameworks</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project</th> <th>Current stable version</th> <th>Release date</th> <th><a href="/wiki/License" title="License">License</a> </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Express.js" title="Express.js">Express.js</a> </th> <td>5.0.1<sup id="cite_ref-wikidata-f83a166f81f004fded46fc50ab545c3957391e38-v18_23-0" class="reference"><a href="#cite_note-wikidata-f83a166f81f004fded46fc50ab545c3957391e38-v18-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q16878131?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-10-08; 4 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Fastify" title="Fastify">Fastify</a> </th> <td>5.2.1<sup id="cite_ref-wikidata-29130fa078fd8346e6e121245f82906a1cd7ff66-v18_24-0" class="reference"><a href="#cite_note-wikidata-29130fa078fd8346e6e121245f82906a1cd7ff66-v18-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q131247600?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-01-06; 59 days ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Meteor_(web_framework)" title="Meteor (web framework)">Meteor</a> </th> <td>3.0<sup id="cite_ref-wikidata-110079781dae635c1c2a92f4bce6ce9af60aa4ef-v18_25-0" class="reference"><a href="#cite_note-wikidata-110079781dae635c1c2a92f4bce6ce9af60aa4ef-v18-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q14246221?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-07-22; 7 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/NestJS" title="NestJS">NestJS</a> </th> <td>11.0.10<sup id="cite_ref-wikidata-bbb90c52811a04809d134e2db330d6ef9a471dbe-v18_26-0" class="reference"><a href="#cite_note-wikidata-bbb90c52811a04809d134e2db330d6ef9a471dbe-v18-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q107015664?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-02-17; 17 days ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Next.js" title="Next.js">Next.js</a> </th> <td>15.1.7<sup id="cite_ref-wikidata-f7ef548e7a59d150fb0bc4e1910d4956baec4e92-v18_27-0" class="reference"><a href="#cite_note-wikidata-f7ef548e7a59d150fb0bc4e1910d4956baec4e92-v18-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q56062435?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-02-11; 23 days ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Nuxt.js" class="mw-redirect" title="Nuxt.js">Nuxt.js</a> </th> <td>3.15.4<sup id="cite_ref-wikidata-7445895eb95e7e07f47c55cc22417669dddf3eb8-v18_28-0" class="reference"><a href="#cite_note-wikidata-7445895eb95e7e07f47c55cc22417669dddf3eb8-v18-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q55641291?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-01-29; 36 days ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Remix_(web_framework)" title="Remix (web framework)">Remix</a> </th> <td>2.15.3<sup id="cite_ref-wikidata-d5769e83648f8518b7f5ee1a07e727a3cab2f906-v18_29-0" class="reference"><a href="#cite_note-wikidata-d5769e83648f8518b7f5ee1a07e727a3cab2f906-v18-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q125635483?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-01-30; 35 days ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Sails.js" title="Sails.js">Sails.js</a> </th> <td>1.5.11<sup id="cite_ref-wikidata-a1419979d22b320a43f8885977c73efa48aca804-v18_30-0" class="reference"><a href="#cite_note-wikidata-a1419979d22b320a43f8885977c73efa48aca804-v18-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q25490941?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-05-24; 9 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/SvelteKit" class="mw-redirect" title="SvelteKit">SvelteKit</a> </th> <td>1.15.5<sup id="cite_ref-wikidata-9bc436348e4630889cd8696d51525d5d07955644-v18_31-0" class="reference"><a href="#cite_note-wikidata-9bc436348e4630889cd8696d51525d5d07955644-v18-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q106156162?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2023-04-13; 22 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT License</a> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Perl">Perl</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=9" title="Edit section: Perl"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/Perl" title="Perl">Perl</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Catalyst_(software)" title="Catalyst (software)">Catalyst</a> </th> <td>5.90131<sup id="cite_ref-Catalyst_release_32-0" class="reference"><a href="#cite_note-Catalyst_release-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> </td> <td>2023-07-20<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Catalyst_(software)_version&action=edit">[±]</a></small> </td> <td><a href="/wiki/Artistic_License" title="Artistic License">Artistic</a>, <a href="/wiki/GNU_General_Public_License" title="GNU General Public License">GPL</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Dancer_(software)" title="Dancer (software)">Dancer</a> </th> <td>1.1.1 <sup id="cite_ref-Dancer_release_33-0" class="reference"><a href="#cite_note-Dancer_release-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> </td> <td>2024-07-18<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Dancer_(software)_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Artistic, GPL </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Maypole_framework" class="mw-redirect" title="Maypole framework">Maypole</a> </th> <td>2.13 </td> <td>2008-04-18 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Artistic, GPL </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Mojolicious" title="Mojolicious">Mojolicious</a> </th> <td>9.37<sup id="cite_ref-mojolicious_release_34-0" class="reference"><a href="#cite_note-mojolicious_release-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup> </td> <td>2024-05-13<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Mojolicious_version&action=edit">[±]</a></small> </td> <td>Artistic </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="PHP">PHP</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=10" title="Edit section: PHP"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/PHP" title="PHP">PHP</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th style="width:140pt;">Project </th> <th>Start date </th> <th style="width:90pt;">Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/CakePHP" title="CakePHP">CakePHP</a> </th> <td>2005-08 </td> <td>5.1.5<sup id="cite_ref-cakephp_release_35-0" class="reference"><a href="#cite_note-cakephp_release-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> </td> <td>2025-01-16<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:CakePHP_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/CodeIgniter" title="CodeIgniter">CodeIgniter</a> </th> <td>2006-02-28 </td> <td>4.6.0<sup id="cite_ref-CodeIgniter_release_36-0" class="reference"><a href="#cite_note-CodeIgniter_release-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup> </td> <td>2025-01-19<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:CodeIgniter_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Fat-Free_Framework" title="Fat-Free Framework">Fat-Free</a> </th> <td>2009-09 </td> <td>3.9.0<sup id="cite_ref-Fat-Free_Framework_release_37-0" class="reference"><a href="#cite_note-Fat-Free_Framework_release-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> </td> <td>2024-12-29<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Fat-Free_Framework_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">GPLv3 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/FuelPHP" title="FuelPHP">FuelPHP</a> </th> <td>2011-08 </td> <td>1.9.0<sup id="cite_ref-FuelPHP_release_38-0" class="reference"><a href="#cite_note-FuelPHP_release-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup> </td> <td>2021-12-28<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:FuelPHP_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Gyroscope_(software)" title="Gyroscope (software)">Gyroscope</a> </th> <td>2008-11-20 </td> <td>20.4<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup> </td> <td>2023-11-24 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/BSD_licenses" title="BSD licenses">BSD</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Jamroom" title="Jamroom">Jamroom</a> </th> <td>2003-07-28 </td> <td>7.0.1<sup id="cite_ref-Jamroom_release_40-0" class="reference"><a href="#cite_note-Jamroom_release-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup> </td> <td>2024-01-01<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Jamroom_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/Mozilla_Public_License" title="Mozilla Public License">MPL</a> </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh">Kajona </th> <td>2006 </td> <td>6.2<sup id="cite_ref-kajona_release_41-0" class="reference"><a href="#cite_note-kajona_release-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> </td> <td>2017-06-08 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/GNU_Lesser_General_Public_License" title="GNU Lesser General Public License">LGPLv2</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Laminas" title="Laminas">Laminas</a> (formerly <span class="nowrap">Zend Framework</span>) </th> <td>2006-03 </td> <td>3.3.3<sup id="cite_ref-laminas_release_42-0" class="reference"><a href="#cite_note-laminas_release-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup> </td> <td>2022-02-21 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">New BSD </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Laravel" title="Laravel">Laravel</a> </th> <td>2011-07-31 </td> <td>12.0.1<sup id="cite_ref-wikidata-f3e9b41c6bc8d9a1307f686d28525e8c176a5210-v18_43-0" class="reference"><a href="#cite_note-wikidata-f3e9b41c6bc8d9a1307f686d28525e8c176a5210-v18-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q13634357?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-02-25; 9 days ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Li3_(software)" title="Li3 (software)">Li3</a> (Lithium) </th> <td>2009-10 </td> <td>2.0.0<sup id="cite_ref-li3_release_44-0" class="reference"><a href="#cite_note-li3_release-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup> </td> <td>2022-12-08<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Li3_(software)_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/BSD_licenses" title="BSD licenses">BSD</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Phalcon_(framework)" title="Phalcon (framework)">Phalcon</a> </th> <td>2012-11-14 </td> <td>5.8.0<sup id="cite_ref-phalcon_release_45-0" class="reference"><a href="#cite_note-phalcon_release-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> </td> <td>2024-07-09 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">BSD </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Pop_PHP_Framework" title="Pop PHP Framework">Pop PHP</a> </th> <td>2012-03-19 </td> <td>5.5.0<sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup> </td> <td>2025-02-12 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/BSD_Licence" class="mw-redirect" title="BSD Licence">BSD Licence</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/PRADO_(framework)" title="PRADO (framework)">PRADO</a> </th> <td>2004-01 </td> <td>4.2.0<sup id="cite_ref-prado_release_47-0" class="reference"><a href="#cite_note-prado_release-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup> </td> <td>2022-04-19<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:PRADO_(framework)_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">New BSD<sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/SilverStripe" class="mw-redirect" title="SilverStripe">SilverStripe</a> </th> <td>2007-02-03 </td> <td>5.3.0<sup id="cite_ref-silverstripe_release_49-0" class="reference"><a href="#cite_note-silverstripe_release-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup> </td> <td>2024-11-04<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:SilverStripe_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">BSD </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Smart_Framework_PHP" title="Smart Framework PHP">Smart.Framework</a> </th> <td>2015-02-01 </td> <td>svn.1925<sup id="cite_ref-Smart_Framework_PHP_release_50-0" class="reference"><a href="#cite_note-Smart_Framework_PHP_release-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup> </td> <td>2024-01-19<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Smart_Framework_PHP_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">BSD </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Symfony" title="Symfony">Symfony</a> </th> <td>2005-10 </td> <td>7.2.0<sup id="cite_ref-symfony_release_51-0" class="reference"><a href="#cite_note-symfony_release-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup> </td> <td>2024-11-29<small><a href="/wiki/Special:EditPage/Template:Symfony_version" title="Special:EditPage/Template:Symfony version">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Yii" title="Yii">Yii</a> </th> <td>2008-12-03 </td> <td>2.0.52<sup id="cite_ref-yii_release_52-0" class="reference"><a href="#cite_note-yii_release-52"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup> </td> <td>2025-02-13<small class="plainlinks"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Yii_version&action=edit">[±]</a></small> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/New_BSD_Licence" class="mw-redirect" title="New BSD Licence">New BSD</a> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Python">Python</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=11" title="Edit section: Python"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/Python_(programming_language)" title="Python (programming language)">Python (programming language)</a> and <a href="/wiki/List_of_Python_software#Web_frameworks" title="List of Python software">List of Python software § Web frameworks</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/BlueBream" class="mw-redirect" title="BlueBream">BlueBream</a> </th> <td>1.0<sup id="cite_ref-wikidata-73f354acbedc0fd56489883f4cee5161e1f17c29-v18_53-0" class="reference"><a href="#cite_note-wikidata-73f354acbedc0fd56489883f4cee5161e1f17c29-v18-53"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q9302930?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2011-01-18; 14 years ago </td> <td><a href="/wiki/Zope_Public_License" title="Zope Public License">ZPL</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/CherryPy" title="CherryPy">CherryPy</a> </th> <td>18.10.0<sup id="cite_ref-wikidata-aa495268f8e5ae6ee2a324406b6aa3159b53f47f-v18_54-0" class="reference"><a href="#cite_note-wikidata-aa495268f8e5ae6ee2a324406b6aa3159b53f47f-v18-54"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q2635182?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-06-15; 8 months ago </td> <td><a href="/wiki/BSD_licenses" title="BSD licenses">BSD</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/CubicWeb" title="CubicWeb">CubicWeb</a> </th> <td>4.8.0<sup id="cite_ref-wikidata-fed5bd1994df9bc0aaf25e92bb3d79a91cf61cf6-v18_55-0" class="reference"><a href="#cite_note-wikidata-fed5bd1994df9bc0aaf25e92bb3d79a91cf61cf6-v18-55"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q2839592?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-05-21; 9 months ago </td> <td><a href="/wiki/GNU_Lesser_General_Public_License" title="GNU Lesser General Public License">LGPL</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Django_(web_framework)" title="Django (web framework)">Django</a> </th> <td>5.1.6<sup id="cite_ref-wikidata-00620f17aba8e474c618efc3a57e2b7fbfd26b38-v18_56-0" class="reference"><a href="#cite_note-wikidata-00620f17aba8e474c618efc3a57e2b7fbfd26b38-v18-56"><span class="cite-bracket">[</span>56<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q842014?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-02-05; 29 days ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">BSD </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/FastAPI_(web_framework)" class="mw-redirect" title="FastAPI (web framework)">FastAPI</a> </th> <td>0.115.8<sup id="cite_ref-wikidata-a1359be80230c4721ef18ecaae46e5e562b9cd43-v18_57-0" class="reference"><a href="#cite_note-wikidata-a1359be80230c4721ef18ecaae46e5e562b9cd43-v18-57"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q101119404?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-01-30; 35 days ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Flask_(web_framework)" title="Flask (web framework)">Flask</a> </th> <td>3.1.0<sup id="cite_ref-wikidata-ef007ff21a51fcd9fc50662abc1acb7d67e2124d-v18_58-0" class="reference"><a href="#cite_note-wikidata-ef007ff21a51fcd9fc50662abc1acb7d67e2124d-v18-58"><span class="cite-bracket">[</span>58<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q289281?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-11-13; 3 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">BSD </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Google_App_Engine" title="Google App Engine">Google App Engine</a> </th> <td>1.9.91<sup id="cite_ref-wikidata-f74188b07ae704415f81b624381fa416f0a2231b-v18_59-0" class="reference"><a href="#cite_note-wikidata-f74188b07ae704415f81b624381fa416f0a2231b-v18-59"><span class="cite-bracket">[</span>59<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q454728?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2020-05-11; 4 years ago </td> <td>LGPL, Proprietary </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Grok_(web_framework)" title="Grok (web framework)">Grok</a> </th> <td>5.1<sup id="cite_ref-wikidata-629894db6d4ec5f594339f6266fe332849ec0afc-v18_60-0" class="reference"><a href="#cite_note-wikidata-629894db6d4ec5f594339f6266fe332849ec0afc-v18-60"><span class="cite-bracket">[</span>60<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q5610141?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-10-28; 4 months ago </td> <td>ZPL </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Gunicorn" title="Gunicorn">Gunicorn</a> </th> <td>23.0.0<sup id="cite_ref-wikidata-895e498d20d1f2872379c7802facf148ac4456a5-v18_61-0" class="reference"><a href="#cite_note-wikidata-895e498d20d1f2872379c7802facf148ac4456a5-v18-61"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q5618801?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-08-10; 6 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Jam.py_(web_framework)" title="Jam.py (web framework)">Jam.py</a> </th> <td>5.4.136<sup id="cite_ref-wikidata-2a504c221e53193cc2038961f5a702355bb3c1d0-v18_62-0" class="reference"><a href="#cite_note-wikidata-2a504c221e53193cc2038961f5a702355bb3c1d0-v18-62"><span class="cite-bracket">[</span>62<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q97359958?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2023-11-14; 15 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">BSD </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Pyjs" title="Pyjs">Pyjs</a> </th> <td>0.8.1a<sup id="cite_ref-wikidata-432664666f51f89a91160c8da36e76d1e3274e30-v18_63-0" class="reference"><a href="#cite_note-wikidata-432664666f51f89a91160c8da36e76d1e3274e30-v18-63"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q7263063?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2012-05-09; 12 years ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/Apache_License" title="Apache License">Apache</a> </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Pylons_Framework" class="mw-redirect" title="Pylons Framework">Pylons</a> </th> <td>1.0.2<sup id="cite_ref-wikidata-ffdbcf56b7b2430a14626dbdd3abd76e29ff4823-v18_64-0" class="reference"><a href="#cite_note-wikidata-ffdbcf56b7b2430a14626dbdd3abd76e29ff4823-v18-64"><span class="cite-bracket">[</span>64<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q18285301?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2015-07-22; 9 years ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">BSD </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Pyramid_(web_framework)" class="mw-redirect" title="Pyramid (web framework)">Pyramid</a> </th> <td>2.0.2<sup id="cite_ref-wikidata-4b42ac1949dac41fed9f3514a42ffed507a78293-v18_65-0" class="reference"><a href="#cite_note-wikidata-4b42ac1949dac41fed9f3514a42ffed507a78293-v18-65"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q2342759?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2023-08-25; 18 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">BSD </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Tornado_(web_server)" title="Tornado (web server)">Tornado</a> </th> <td>6.4.2<sup id="cite_ref-wikidata-ba212a9e3347ea9995bd7ef7332fa88069cf66b6-v18_66-0" class="reference"><a href="#cite_note-wikidata-ba212a9e3347ea9995bd7ef7332fa88069cf66b6-v18-66"><span class="cite-bracket">[</span>66<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q1088546?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-11-22; 3 months ago </td> <td>Apache </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/TurboGears" title="TurboGears">TurboGears</a> </th> <td>2.5.0<sup id="cite_ref-wikidata-345d3bdccd367c5c02d8c675c31edeee840ff700-v18_67-0" class="reference"><a href="#cite_note-wikidata-345d3bdccd367c5c02d8c675c31edeee840ff700-v18-67"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q937689?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2025-02-18; 16 days ago </td> <td>MIT, LGPL </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Web2py" title="Web2py">web2py</a> </th> <td>2.27.1<sup id="cite_ref-wikidata-f3fe63ae355e0f9cef1873a010dccf77c60e7033-v18_68-0" class="reference"><a href="#cite_note-wikidata-f3fe63ae355e0f9cef1873a010dccf77c60e7033-v18-68"><span class="cite-bracket">[</span>68<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q286180?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2023-11-16; 15 months ago </td> <td><a href="/wiki/GNU_Lesser_General_Public_License" title="GNU Lesser General Public License">LGPL3</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Zope_2" class="mw-redirect" title="Zope 2">Zope 2</a> </th> <td>5.6.0<sup id="cite_ref-wikidata-3775e51129d135800dc3c147ac901e0cb8bdc5a1-v18_69-0" class="reference"><a href="#cite_note-wikidata-3775e51129d135800dc3c147ac901e0cb8bdc5a1-v18-69"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q104238069?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2022-09-09; 2 years ago </td> <td>ZPL </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Ruby">Ruby</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=12" title="Edit section: Ruby"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/Ruby_(programming_language)" title="Ruby (programming language)">Ruby (programming language)</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Padrino_(web_framework)" title="Padrino (web framework)">Padrino</a> </th> <td>0.14.4 </td> <td>2019-01-14<sup id="cite_ref-changes_70-0" class="reference"><a href="#cite_note-changes-70"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Ruby_on_Rails" title="Ruby on Rails">Ruby on Rails</a> </th> <td>8.0.1<sup id="cite_ref-wikidata-431c5fc486840ed67da796e3110bd7db98ce0f98-v18_71-0" class="reference"><a href="#cite_note-wikidata-431c5fc486840ed67da796e3110bd7db98ce0f98-v18-71"><span class="cite-bracket">[</span>71<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q190478?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2024-12-13; 2 months ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Sinatra_(software)" title="Sinatra (software)">Sinatra</a> </th> <td>3.0.2<sup id="cite_ref-wikidata-733942497525f0b6276cb61b3f5a06ad8291fd1a-v18_72-0" class="reference"><a href="#cite_note-wikidata-733942497525f0b6276cb61b3f5a06ad8291fd1a-v18-72"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup> <span class="mw-valign-text-top" typeof="mw:File/Frameless"><a href="https://www.wikidata.org/wiki/Q657028?uselang=en#P348" title="Edit this on Wikidata"><img alt="Edit this on Wikidata" src="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/10px-OOjs_UI_icon_edit-ltr-progressive.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/15px-OOjs_UI_icon_edit-ltr-progressive.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/8/8a/OOjs_UI_icon_edit-ltr-progressive.svg/20px-OOjs_UI_icon_edit-ltr-progressive.svg.png 2x" data-file-width="20" data-file-height="20" /></a></span> </td> <td>2022-10-01; 2 years ago </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Scala">Scala</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=13" title="Edit section: Scala"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951" /><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala (programming language)</a></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/License" title="License">License</a> </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Lift_(web_framework)" title="Lift (web framework)">Lift</a> </th> <td>3.4.3 </td> <td>2020-11-28 </td> <td>Apache 2.0 </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Play_Framework" title="Play Framework">Play</a> </th> <td>2.8.8 </td> <td>2021-04-08 </td> <td><a href="/wiki/Apache_licence" class="mw-redirect" title="Apache licence">Apache 2.0</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Scalatra" title="Scalatra">Scalatra</a> </th> <td>2.8.1 </td> <td>2021-09-25 </td> <td><a href="/wiki/BSD_licence" class="mw-redirect" title="BSD licence">BSD</a> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Others">Others</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=14" title="Edit section: Others"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th><a href="/wiki/Programming_language" title="Programming language">Language</a> </th> <th>Current stable version </th> <th>Release date </th> <th><a href="/wiki/Software_license" title="Software license">License</a> </th></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/AIDA/Web" title="AIDA/Web">AIDA/Web</a> </th> <td><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> </td> <td>6.7 </td> <td>2014-09-14 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/MIT_License" title="MIT License">MIT</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Oracle_Application_Express" title="Oracle Application Express">Oracle APEX</a> </th> <td><a href="/wiki/PL/SQL" title="PL/SQL">PL/SQL</a> </td> <td>22.2 </td> <td>2022-11-10 </td> <td style="background: #E7E7FF; color:black; vertical-align: middle; text-align: center;" class="table-proprietary"><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a> <a href="/wiki/Freeware" title="Freeware">freeware</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Flex" title="Apache Flex">Flex</a> </th> <td><a href="/wiki/ActionScript" title="ActionScript">ActionScript</a>, <a href="/wiki/MXML" title="MXML">MXML</a> </td> <td>4.16.1 </td> <td>2019-11-23 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free"><a href="/wiki/Apache_License" title="Apache License">Apache</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Grails_(framework)" title="Grails (framework)">Grails</a> </th> <td><a href="/wiki/Groovy_(programming_language)" class="mw-redirect" title="Groovy (programming language)">Groovy</a> (JVM) </td> <td>6.2.2<sup id="cite_ref-73" class="reference"><a href="#cite_note-73"><span class="cite-bracket">[</span>73<span class="cite-bracket">]</span></a></sup> </td> <td>2024-11-20 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">Apache </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Morfik" title="Morfik">Morfik</a> </th> <td><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="/wiki/BASIC" title="BASIC">BASIC</a>, <a href="/wiki/Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>, <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a> </td> <td>3.0.8.1 </td> <td>2010-12-13 </td> <td style="background: #E7E7FF; color:black; vertical-align: middle; text-align: center;" class="table-proprietary">Proprietary freeware </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh"><a href="/wiki/Opa_(programming_language)" title="Opa (programming language)">Opa</a> </th> <td>Opa </td> <td>1.1.1 </td> <td>2013-04-16<sup id="cite_ref-74" class="reference"><a href="#cite_note-74"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup> </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">MIT and <a href="/wiki/GNU_Affero_General_Public_License" title="GNU Affero General Public License">AGPL</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/OpenACS" class="mw-redirect" title="OpenACS">OpenACS</a> </th> <td><a href="/wiki/Tcl" title="Tcl">Tcl</a> </td> <td>5.10.1<sup id="cite_ref-75" class="reference"><a href="#cite_note-75"><span class="cite-bracket">[</span>75<span class="cite-bracket">]</span></a></sup> </td> <td>2024-09-03 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">GPL </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Seaside_(software)" title="Seaside (software)">Seaside</a> </th> <td><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> </td> <td>3.5.9<sup id="cite_ref-76" class="reference"><a href="#cite_note-76"><span class="cite-bracket">[</span>76<span class="cite-bracket">]</span></a></sup> </td> <td>2024-10-20 </td> <td style="background: #DFF; color:black; vertical-align: middle; text-align: center;" class="free table-free">MIT </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Comparison_of_features">Comparison of features</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=15" title="Edit section: Comparison of features"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="C++_2"><span id="C.2B.2B_2"></span>C++</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=16" title="Edit section: C++"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/CppCMS" title="CppCMS">CppCMS</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">CppDB </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Wt_-_Web_toolkit" class="mw-redirect" title="Wt - Web toolkit">Wt</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push & Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Wt::Dbo </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Boost.test </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="ColdFusion_Markup_Language_(CFML)_2"><span id="ColdFusion_Markup_Language_.28CFML.29_2"></span>ColdFusion Markup Language (CFML)</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=17" title="Edit section: ColdFusion Markup Language (CFML)"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/ColdBox_Platform" title="ColdBox Platform">ColdBox Platform</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Quick & cbORM </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes via TestBox </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/ColdFusion_Markup_Language" title="ColdFusion Markup Language">CFML</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Java_2">Java</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=18" title="Edit section: Java"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Language </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Click" title="Apache Click">Apache Click</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/JQuery" title="JQuery">jQuery</a> </td> <td>Page oriented </td> <td>Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Hibernate, <a href="/wiki/Apache_Cayenne" title="Apache Cayenne">Cayenne</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">pluggable </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Velocity, JSP </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Cached templates </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Built-in validation </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_OFBiz" title="Apache OFBiz">Apache OFBiz</a> </th> <td>Java, Groovy, XML, </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/JQuery" title="JQuery">jQuery</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Entity Engine (Internal kind of ORM, not really ORM, notably used by Atlassian <a href="/wiki/Jira_(software)" title="Jira (software)">Jira</a>) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">JUnit </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Entity Engine Tools, Data File Tool, CSV Parser, Apache POI </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Internal Security framework based on OWASP </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Freemarker (Recommended), Velocity (Support Available), JSP (Support Available) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Internal Cache Maintenance with Distributed Cache Clearing for clusters </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Server side validation, Client Side Validation (JQuery) </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Sling" title="Apache Sling">Apache Sling</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td> </td> <td>Uses JCR content repository </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Struts" title="Apache Struts">Apache Struts</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Unit_testing" title="Unit testing">Unit tests</a> </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Tapestry" title="Apache Tapestry">Apache Tapestry</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Prototype, jQuery </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Java_Persistence_API" class="mw-redirect" title="Java Persistence API">JPA</a>, <a href="/wiki/Hibernate" class="mw-redirect" title="Hibernate">Hibernate</a>, <a href="/wiki/Apache_Cayenne" title="Apache Cayenne">Cayenne</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Selenium" title="Selenium">Selenium</a>, <a href="/wiki/TestNG" title="TestNG">TestNG</a>, <a href="/wiki/JUnit" title="JUnit">JUnit</a> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Spring Security, Shiro </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">with extensions </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Native or <a href="/wiki/Bean_Validation" title="Bean Validation">Bean Validation</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Apache_Wicket" title="Apache Wicket">Apache Wicket</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Extensions for <a href="/wiki/YUI_Library" title="YUI Library">YUI</a>, <a href="/wiki/ExtJS" class="mw-redirect" title="ExtJS">ExtJS</a>, more </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No (Modular event-driven) </td> <td>Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">with extensions </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Mock objects, unit and integration tests via extension </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Grails_(Framework)" class="mw-redirect" title="Grails (Framework)">Grails</a> </th> <td><a href="/wiki/Groovy_(programming_language)" class="mw-redirect" title="Groovy (programming language)">Groovy</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">GORM, <a href="/wiki/Hibernate_(Java)" class="mw-redirect" title="Hibernate (Java)">Hibernate</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Unit_testing" title="Unit testing">Unit tests</a>, <a href="/wiki/Integration_test" class="mw-redirect" title="Integration test">integration test</a>, <a href="/wiki/Functional_test" class="mw-redirect" title="Functional test">functional test</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">multiple plugins: autobase, dbmigrate, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Spring_Security" title="Spring Security">Spring Security</a>,<sup id="cite_ref-77" class="reference"><a href="#cite_note-77"><span class="cite-bracket">[</span>77<span class="cite-bracket">]</span></a></sup> <a href="/wiki/Apache_Shiro" title="Apache Shiro">Apache Shiro</a><sup id="cite_ref-78" class="reference"><a href="#cite_note-78"><span class="cite-bracket">[</span>78<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/JavaServer_Faces" class="mw-redirect" title="JavaServer Faces">JavaServer Faces</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Java_Persistence_API" class="mw-redirect" title="Java Persistence API">JPA</a>, <a href="/wiki/Hibernate_(Java)" class="mw-redirect" title="Hibernate (Java)">Hibernate</a> and any other Java EE ORM framework </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/JUnit" title="JUnit">JUnit</a> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Facelets" title="Facelets">Facelets</a>, JSP </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Native validators, integration with <a href="/wiki/Bean_Validation" title="Bean Validation">Bean Validation</a> </td></tr> <tr> <th>Project </th> <th>Language </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/JBoss_Seam" title="JBoss Seam">JBoss Seam</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Java_Persistence_API" class="mw-redirect" title="Java Persistence API">JPA</a>, Hibernate </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">JUnit, <a href="/wiki/TestNG" title="TestNG">TestNG</a> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Java_Authentication_and_Authorization_Service" title="Java Authentication and Authorization Service">JAAS</a> integration, <a href="/wiki/Drools" title="Drools">Drools</a>, Hibernate Filters, <a href="/wiki/OpenID" title="OpenID">OpenID</a>, <a href="/wiki/CAPTCHA" title="CAPTCHA">CAPTCHA</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Facelets </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/JBoss_Cache" class="mw-redirect" title="JBoss Cache">JBoss Cache</a>, <a href="/wiki/Ehcache" title="Ehcache">Ehcache</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Hibernate Validator </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/JWt_(Java_web_toolkit)" title="JWt (Java web toolkit)">JWt</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Play_Framework" title="Play Framework">Play</a> </th> <td>Java, Scala </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">JPA, Hibernate </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">JUnit, <a href="/wiki/Selenium_(software)" title="Selenium (software)">Selenium</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">via Core Security module </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Server-side validation </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Spring_Framework" title="Spring Framework">Spring</a> </th> <td><a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Hibernate_(Java)" class="mw-redirect" title="Hibernate (Java)">Hibernate</a>, iBatis, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Mock objects, unit tests </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Spring_Security" title="Spring Security">Spring Security</a> (formerly Acegi) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/JavaServer_Pages" class="mw-redirect" title="JavaServer Pages">JSP</a>, Commons Tiles, <a href="/wiki/Apache_Velocity" title="Apache Velocity">Velocity</a>, <a href="/wiki/Thymeleaf" title="Thymeleaf">Thymeleaf</a>, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Ehcache, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Commons validator, <a href="/wiki/Bean_Validation" title="Bean Validation">Bean Validation</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Stripes_(framework)" title="Stripes (framework)">Stripes</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">JPA, Hibernate </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">framework extension </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Vaadin" title="Vaadin">Vaadin</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Google_Web_Toolkit" title="Google Web Toolkit">GWT</a> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Wavemaker" class="mw-redirect" title="Wavemaker">Wavemaker</a> </th> <td><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> (client), Java (server) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Dojo_Toolkit" title="Dojo Toolkit">Dojo Toolkit</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Dojo Toolkit </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Hibernate </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">JUnit </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Hibernate </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Spring Security (formerly Acegi), <a href="/wiki/Role-based_access_control" title="Role-based access control">role-based access control</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Dojo Toolkit </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Dojo Toolkit </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Regular_expression" title="Regular expression">Regular expression</a>, schema-driven validation </td></tr> <tr> <th>Project </th> <th>Language </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/WebObjects" title="WebObjects">WebObjects</a> </th> <td>Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Enterprise_Objects_Framework" title="Enterprise Objects Framework">EOF</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">WOUnit (JUnit), TestNG, Selenium </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">in Project WONDER </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Google_Web_Toolkit" title="Google Web Toolkit">Google Web Toolkit</a> </th> <td>Java, JavaScript </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">JPA with RequestFactory </td> <td>JUnit (too early), <a href="/wiki/JsUnit" class="mw-redirect" title="JsUnit">jsUnit</a> (too difficult), Selenium (best) </td> <td>via Java </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Bean Validation </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/ZK_(framework)" title="ZK (framework)">ZK</a> </th> <td>Java, ZUML </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/JQuery" title="JQuery">jQuery</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">any J2EE ORM framework </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">JUnit, ZATS </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">HibernateUtil, SpringUtil </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Spring Security </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Macro components & composition </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">client, server </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="JavaScript_2">JavaScript</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=19" title="Edit section: JavaScript"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/AngularJS" title="AngularJS">AngularJS</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">XHR, JSONP </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">i18n and l10n </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Karma (unit testing), Protractor (end-to-end testing) </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Content Security Policy (CSP), XSRF </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Templates </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Caching </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Form validation (client-side) </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/EmberJS" class="mw-redirect" title="EmberJS">EmberJS</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Ember Data </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">QUnit </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Handlebars </td> <td> </td> <td> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Qooxdoo" title="Qooxdoo">qooxdoo</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Data binding </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">i18n </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Testrunner </td> <td> </td> <td> </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Form Validation </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/SproutCore" title="SproutCore">SproutCore</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Perl_2">Perl</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=20" title="Edit section: Perl"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Catalyst_(software)" title="Catalyst (software)">Catalyst</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Toolkit-independent (<a href="/wiki/REST" title="REST">REST</a> & <a href="/wiki/JSON" title="JSON">JSON</a> support, specific plugins for <a href="/wiki/Prototype_JavaScript_Framework" title="Prototype JavaScript Framework">Prototype JavaScript Framework</a>, more) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push in its most common usage </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/DBIx::Class" title="DBIx::Class">DBIx::Class</a>, Rose::DB::Object, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Supports Perl testing standards, <a href="/wiki/Test_Anything_Protocol" title="Test Anything Protocol">Test Anything Protocol (TAP)</a> </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Access_control_list" class="mw-redirect" title="Access control list">ACL</a>-based, external engines, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Template_Toolkit" title="Template Toolkit">Template::Toolkit</a>, HTML::Template, HTML::Mason, PHP and any extant Perl template engine </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Cache, Memcached, shared memory, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">HTML::FormHandler HTML::FormFu, HTML::FormValidator, more </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Dancer_(software)" title="Dancer (software)">Dancer</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">DBIx::Class, ORMesque </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Template::Toolkit, HTML::Mason, Text::MicroTemplate, any extant Perl template engine </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Cache, Memcached, shared memory, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">DataFu, any extant Perl form validation software </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Maypole_framework" class="mw-redirect" title="Maypole framework">Maypole</a> </th> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Mojolicious" title="Mojolicious">Mojolicious</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Toolkit-independent (<a href="/wiki/REST" title="REST">REST</a> & <a href="/wiki/JSON" title="JSON">JSON</a> support) </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No explicit model support though commonly used as MVC </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Commonly used with DBIx::Class </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Test::Mojo </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Signed session cookie </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Built-in Perl templating, Template::Toolkit and several others via plugins </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">Not explicitly, use any Perl Modules </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="PHP_2">PHP</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=21" title="Edit section: PHP"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Language </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th> <th><a href="/wiki/Scaffold_(programming)" title="Scaffold (programming)">Scaffolding</a> </th> <th><a href="/wiki/Rapid_application_development" title="Rapid application development">RAD</a> </th> <th>Mobility </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/CakePHP" title="CakePHP">CakePHP</a> </th> <td>PHP >= 7.4<sup id="cite_ref-cake_installation_79-0" class="reference"><a href="#cite_note-cake_installation-79"><span class="cite-bracket">[</span>79<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Any </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes, Push & Cells </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a>, <a href="/wiki/Data_mapper_pattern" title="Data mapper pattern">Data Mapper Pattern</a>, SQL <a href="/wiki/Relational_Algebra" class="mw-redirect" title="Relational Algebra">Relational Algebra</a> Abstraction Layer </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Unit_testing" title="Unit testing">Unit tests</a>, object mocking, fixtures, code coverage, memory analysis with <a href="/wiki/PHPUnit" title="PHPUnit">PHPUnit</a> and <a href="/wiki/Xdebug" title="Xdebug">Xdebug</a> and <a href="/wiki/Continuous_integration" title="Continuous integration">Continuous Integration</a> via <a href="/wiki/Travis_CI" title="Travis CI">Travis</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">CRUD based, <a href="/wiki/Access_control_list" class="mw-redirect" title="Access control list">ACL</a>-based, Multiple Plugins </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Themes, Layouts, Cells, Views, Elements, Plugins for <a href="/wiki/Twig_(template_engine)" title="Twig (template engine)">Twig</a>, <a href="/w/index.php?title=Bootstrap_(client-side_framework)&action=edit&redlink=1" class="new" title="Bootstrap (client-side framework) (page does not exist)">Bootstrap</a>, etc. </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Memcache" class="mw-redirect" title="Memcache">Memcache</a>, <a href="/wiki/Redis" title="Redis">Redis</a>, <a href="/wiki/XCache" class="mw-redirect" title="XCache">XCache</a>, <a href="/wiki/Alternative_PHP_Cache" class="mw-redirect" title="Alternative PHP Cache">APC</a>, File </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Validation via Contexts (Table (<a href="/wiki/Data_access_object" title="Data access object">DAO</a>), Entity (<a href="/wiki/Data_transfer_object" title="Data transfer object">VO</a>) & Controller), <a href="/wiki/Cross-site_request_forgery" title="Cross-site request forgery">CSRF</a> Protection </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Plugin CRUD </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Cake Bake </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Mobile Agent Detection, Layouts </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/CodeIgniter" title="CodeIgniter">CodeIgniter</a> </th> <td>PHP >= 8.1<sup id="cite_ref-80" class="reference"><a href="#cite_note-80"><span class="cite-bracket">[</span>80<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Any </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFB; color:black;vertical-align:middle;text-align:center;" class="table-partial">Push </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Mostly<sup id="cite_ref-81" class="reference"><a href="#cite_note-81"><span class="cite-bracket">[</span>81<span class="cite-bracket">]</span></a></sup> </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Third party only </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Ready for next release, <a href="/wiki/Unit_testing" title="Unit testing">Unit tests</a> for v.4 and up </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No<sup id="cite_ref-82" class="reference"><a href="#cite_note-82"><span class="cite-bracket">[</span>82<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Templates </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Fat-Free_Framework" title="Fat-Free Framework">Fat-Free Framework</a> </th> <td>PHP >= 5.4<sup id="cite_ref-83" class="reference"><a href="#cite_note-83"><span class="cite-bracket">[</span>83<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Any </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">MVC, RMR </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Data mappers for SQL, MongoDB, Flat-File </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Built-in </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">APC, Memcache, XCache, WinCache, and Filesystem </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/FuelPHP" title="FuelPHP">FuelPHP</a> </th> <td>PHP >= 5.3.3<sup id="cite_ref-84" class="reference"><a href="#cite_note-84"><span class="cite-bracket">[</span>84<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">MVC, HMVC </td> <td style="background:#FFB; color:black;vertical-align:middle;text-align:center;" class="table-partial">Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">PHPUnit </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes, Plugins available </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes, Plugins available </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">File, <a href="/wiki/Redis" title="Redis">Redis</a>, Memcache, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Gyroscope_(software)" title="Gyroscope (software)">Gyroscope</a> </th> <td>PHP >= 5.4 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">nano.js, replaceable<sup id="cite_ref-85" class="reference"><a href="#cite_note-85"><span class="cite-bracket">[</span>85<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/LCHH_Architecture" class="mw-redirect" title="LCHH Architecture">LCHH</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Mostly </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Data-source agnostic </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Built-in Schema comparison tool and UDF editor </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">ACL-based, replaceable </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Implementation-specific; helper functions and theme templates available </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">APC, Memcache </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Interactive code generator </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Dedicated mobile and tablet layouts, landscape-portrait transformation </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh">Kajona </th> <td>PHP >= 7<sup id="cite_ref-86" class="reference"><a href="#cite_note-86"><span class="cite-bracket">[</span>86<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Any </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/PHPUnit" title="PHPUnit">PHPUnit</a>, <a href="/wiki/Selenium" title="Selenium">Selenium</a>, <a href="/wiki/Jasmine" title="Jasmine">Jasmine</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Alternative_PHP_Cache" class="mw-redirect" title="Alternative PHP Cache">APC</a>, Database, File </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Bootstrapping" title="Bootstrapping">Bootstrap</a> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Laminas" title="Laminas">Laminas</a> (formerly <span class="nowrap">Zend Framework</span>) </th> <td>PHP >= 7.3<sup id="cite_ref-87" class="reference"><a href="#cite_note-87"><span class="cite-bracket">[</span>87<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Toolkit-independent </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Table and row data gateway or Doctrine </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Unit tests, PHP Unit or other independent </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">ACL-based </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">APC, Database, File, Memcache, <a href="/wiki/List_of_PHP_accelerators#Zend_Platform" title="List of PHP accelerators">Zend Platform</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Laravel" title="Laravel">Laravel</a> </th> <td>PHP >= 8.0<sup id="cite_ref-88" class="reference"><a href="#cite_note-88"><span class="cite-bracket">[</span>88<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Any </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Eloquent_(software)" class="mw-redirect" title="Eloquent (software)">Eloquent</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/PHPUnit" title="PHPUnit">PHPUnit</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Alternative_PHP_Cache" class="mw-redirect" title="Alternative PHP Cache">APC</a>, Database, File, <a href="/wiki/Memcache" class="mw-redirect" title="Memcache">Memcache</a>, <a href="/wiki/Redis" title="Redis">Redis</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Li3_(software)" title="Li3 (software)">Li3</a> (Lithium) </th> <td>PHP >= 5.3.6 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Any </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFB; color:black;vertical-align:middle;text-align:center;" class="table-partial">Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Unit tests, builtin test framework or other independent </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes, Plugins available </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">PHP, <a href="/wiki/Twig_(template_engine)" title="Twig (template engine)">Twig</a> Plugin available </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Memcache" class="mw-redirect" title="Memcache">Memcache</a>, <a href="/wiki/Redis" title="Redis">Redis</a>, <a href="/wiki/XCache" class="mw-redirect" title="XCache">XCache</a>, <a href="/wiki/Alternative_PHP_Cache" class="mw-redirect" title="Alternative PHP Cache">APC</a>, File </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes, with <a href="/wiki/Cross-site_request_forgery" title="Cross-site request forgery">CSRF</a> Protection and Form Signing </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Phalcon_(framework)" title="Phalcon (framework)">Phalcon</a> </th> <td>PHP >= 8.0<sup id="cite_ref-89" class="reference"><a href="#cite_note-89"><span class="cite-bracket">[</span>89<span class="cite-bracket">]</span></a></sup> </td> <td style="background: #FFD; color:black; vertical-align: middle; text-align: center;" class="any table-any">Any </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/w/index.php?title=Codeception&action=edit&redlink=1" class="new" title="Codeception (page does not exist)">Codeception</a> <a href="/wiki/PHPUnit" title="PHPUnit">PHPUnit</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Volt, PHP </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Alternative_PHP_Cache" class="mw-redirect" title="Alternative PHP Cache">APC</a>, <a href="/wiki/Memcache" class="mw-redirect" title="Memcache">Memcache</a>, Memory, <a href="/wiki/Redis" title="Redis">Redis</a>, Redis Cluster, File </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Pop_PHP_Framework" title="Pop PHP Framework">Pop PHP</a> </th> <td>PHP >= 8.2 </td> <td style="background: #FFD; color:black; vertical-align: middle; text-align: center;" class="any table-any">Any </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/PHPUnit" title="PHPUnit">PHPUnit</a> with CI via GitHub Actions </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Access_control_list" class="mw-redirect" title="Access control list">ACL</a>-based </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Alternative_PHP_Cache" class="mw-redirect" title="Alternative PHP Cache">APC</a>, Database, File, <a href="/wiki/Memcache" class="mw-redirect" title="Memcache">Memcache</a>, <a href="/wiki/Redis" title="Redis">Redis</a>, Session </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/PRADO_(framework)" title="PRADO (framework)">PRADO</a> </th> <td>PHP >= 7.3<sup id="cite_ref-90" class="reference"><a href="#cite_note-90"><span class="cite-bracket">[</span>90<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Prototype, script.aculo.us, own components<sup id="cite_ref-prado1_91-0" class="reference"><a href="#cite_note-prado1-91"><span class="cite-bracket">[</span>91<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Data_access_object" title="Data access object">Data access objects</a> (DAO), active record pattern, SQLMap data mapper </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/PHPUnit" title="PHPUnit">PHPUnit</a>, SimpleTest, <a href="/wiki/Selenium_(software)" title="Selenium (software)">Selenium</a> </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/XML" title="XML">XML</a>-based, similar to <a href="/wiki/ASP.NET" title="ASP.NET">ASP.NETs</a><sup id="cite_ref-prado1_91-1" class="reference"><a href="#cite_note-prado1-91"><span class="cite-bracket">[</span>91<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/List_of_PHP_accelerators#Alternative_PHP_Cache" title="List of PHP accelerators">APC</a>, Database, <a href="/wiki/List_of_PHP_accelerators#eAccelerator" title="List of PHP accelerators">eAccelerator</a>, <a href="/wiki/Memcached" title="Memcached">Memcached</a>, XCache </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes<sup id="cite_ref-prado1_91-2" class="reference"><a href="#cite_note-prado1-91"><span class="cite-bracket">[</span>91<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes<sup id="cite_ref-prado1_91-3" class="reference"><a href="#cite_note-prado1-91"><span class="cite-bracket">[</span>91<span class="cite-bracket">]</span></a></sup> </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/SilverStripe" class="mw-redirect" title="SilverStripe">SilverStripe</a> (Sapphire) </th> <td>PHP >= 7.1<sup id="cite_ref-92" class="reference"><a href="#cite_note-92"><span class="cite-bracket">[</span>92<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/JQuery" title="JQuery">jQuery</a>, jQuery UI </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Active record pattern </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Unit tests, <a href="/wiki/Selenium_(software)#Selenium_Remote_Control" title="Selenium (software)">Selenium</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Automatic </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">incl. OpenID </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Themes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #F4E3FF; color: black; vertical-align: middle; text-align: left; font-weight: bolder;" scope="row" class="rh heading table-rh">Silex </th> <td>PHP >= 5.3.9 </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Plugin exists (<a href="/wiki/Doctrine_(PHP)" title="Doctrine (PHP)">Doctrine</a>) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">PHP, <a href="/wiki/Twig_(template_engine)" title="Twig (template engine)">Twig</a> </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Plugin exists </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Plugin exists </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Smart_Framework_PHP" title="Smart Framework PHP">Smart.Framework</a> </th> <td>PHP >= 7.3<sup id="cite_ref-93" class="reference"><a href="#cite_note-93"><span class="cite-bracket">[</span>93<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes (PostgreSQL, MySQL, SQLite, MongoDB, Solr, others via plugins) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes (Markers, <a href="/wiki/Twig_(template_engine)" title="Twig (template engine)">Twig</a>, others via plugins) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes (File, Redis, others via plugins) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes, (jQuery mobile, Bootstrap, others via plugins) </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Symfony" title="Symfony">Symfony</a> </th> <td>PHP >= 8.1<sup id="cite_ref-94" class="reference"><a href="#cite_note-94"><span class="cite-bracket">[</span>94<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Prototype, script.aculo.us, Unobtrusive Ajax with UJS and PJS plugins </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFB; color:black;vertical-align:middle;text-align:center;" class="table-partial">Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Propel, <a href="/wiki/Doctrine_(PHP)" title="Doctrine (PHP)">Doctrine</a> (<a href="/wiki/YAML" title="YAML">YAML</a>) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Plugin exists (alpha code) </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">Plugin </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">PHP, <a href="/wiki/Twig_(template_engine)" title="Twig (template engine)">Twig</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/TYPO3" title="TYPO3">TYPO3</a> </th> <td>PHP >= 7.2<sup id="cite_ref-95" class="reference"><a href="#cite_note-95"><span class="cite-bracket">[</span>95<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Any </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFB; color:black;vertical-align:middle;text-align:center;" class="table-partial">Partial </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">TYPO3 Fluid </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Plugin exists </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Plugin exists </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Yii" title="Yii">Yii</a> </th> <td>PHP >= 5.4<sup id="cite_ref-96" class="reference"><a href="#cite_note-96"><span class="cite-bracket">[</span>96<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/JQuery" title="JQuery">jQuery</a>, jQuery UI, own components, plugins </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Push-pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Data Access Objects (DAO), Active Record Pattern, Plugins (incl. Doctrine 2.0) </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">PHPUnit, <a href="/wiki/Selenium_(software)#Selenium_Remote_Control" title="Selenium (software)">Selenium</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">ACL-based, <a href="/wiki/Role-based_access_control" title="Role-based access control">RBAC</a>-based, plugins </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">PHP-based, PRADO-like, plugins </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">APC, Database, eAccelerator, File, Memcache, Redis, <a href="/wiki/List_of_PHP_accelerators#Windows_Cache_Extension_for_PHP" title="List of PHP accelerators">WinCache</a>, XCache, <a href="/wiki/List_of_PHP_accelerators#Zend_Platform" title="List of PHP accelerators">Zend Platform</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes<sup id="cite_ref-97" class="reference"><a href="#cite_note-97"><span class="cite-bracket">[</span>97<span class="cite-bracket">]</span></a></sup> </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td> <td style="background: var(--background-color-interactive, #EEE); color: var(--color-base, black); vertical-align: middle; white-space: nowrap; text-align: center;" class="table-Unknown">? </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Python_2">Python</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=22" title="Edit section: Python"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Language </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th> <th>Python 3.* </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/CherryPy" title="CherryPy">CherryPy</a> </th> <td>Python </td> <td>- </td> <td>- </td> <td>_ </td> <td>- </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">pluggable </td> <td>- </td> <td>- </td> <td>- </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">pluggable </td> <td>- </td> <td>- </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Django_(web_framework)" title="Django (web framework)">Django</a> </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">built-in, Jinja2, Mako, <a href="/wiki/CheetahTemplate" title="CheetahTemplate">Cheetah</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/FastAPI_(web_framework)" class="mw-redirect" title="FastAPI (web framework)">FastAPI</a> </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>- </td> <td>- </td> <td>- </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">ORM-agnostic </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">via <a href="/wiki/Pytest" title="Pytest">pytest</a> </td> <td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">depends on ORM </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Jinja2 </td> <td>- </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Flask_(web_framework)" title="Flask (web framework)">Flask</a> </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>- </td> <td>- </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">ORM-agnostic </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">via unittest </td> <td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">depends on ORM </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Jinja_(template_engine)" title="Jinja (template engine)">Jinja2</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Jam.py_(web_framework)" title="Jam.py (web framework)">Jam.py</a> </th> <td>Python, <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Event driven </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">via <a href="/wiki/Pytest" title="Pytest">pytest</a> and mocha </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Pyjs" title="Pyjs">Pyjs</a> </th> <td>Python, <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Use PureMVC Python version (compiled to JavaScript) </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>??, no direct data access </td> <td> </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td> </td> <td> </td> <td> </td> <td> </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Pylons_Framework" class="mw-redirect" title="Pylons Framework">Pylons</a> </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">helpers for <a href="/wiki/Prototype_JavaScript_Framework" title="Prototype JavaScript Framework">Prototype</a> and <a href="/wiki/Script.aculo.us" class="mw-redirect" title="Script.aculo.us">script.aculo.us</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">controller </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">ORM-agnostic </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">via nose </td> <td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">depends on ORM </td> <td> </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">pluggable: Mako, <a href="/wiki/Genshi_(templating_language)" title="Genshi (templating language)">Genshi</a>, Myghty, Kid, more </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">native: pluggable: Redis, Beaker (memory, memcached, file, databases) </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">preferred formencode </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Pyramid_(web_framework)" class="mw-redirect" title="Pyramid (web framework)">Pyramid</a> </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">ORM-agnostic </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td data-sort-value="" style="background: var(--background-color-interactive, #ececec); color: var(--color-base, inherit); vertical-align: middle; text-align: center;" class="table-na">depends on ORM </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">pluggable: Jinja2, Chameleon, Mako, Genshi, <a rel="nofollow" class="external text" href="https://trypyramid.com/extending-pyramid.html">more</a> </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">default: native <a rel="nofollow" class="external text" href="https://docs.pylonsproject.org/projects/pyramid/en/latest/narr/sessions.html">session factory</a>. pluggable: Redis, PyNaCl, Beaker (memory, memcached, file, databases), <a rel="nofollow" class="external text" href="https://trypyramid.com/extending-pyramid.html">more</a> </td> <td style="background: #FED; color:black; vertical-align: middle; text-align: center;" class="depends table-depends">deform, formencode, WTForms, <a rel="nofollow" class="external text" href="https://trypyramid.com/extending-pyramid.html">more</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh">TACTIC </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Pull </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Mako </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Tornado_(web_server)" title="Tornado (web server)">Tornado</a> </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">See Advanced Async Example implements AJAX </td> <td>- </td> <td>- </td> <td>- </td> <td>- </td> <td>- </td> <td>- </td> <td>- </td> <td>- </td> <td>- </td> <td>- </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/TurboGears" title="TurboGears">TurboGears</a> </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Toolkit-independent, provides support via JSON </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Full stack, best-of-breed based </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">SQLAlchemy </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/PyUnit" class="mw-redirect" title="PyUnit">nose</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">SQLAlchemy-Migrate </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/w/index.php?title=Repoze&action=edit&redlink=1" class="new" title="Repoze (page does not exist)">Repoze</a>.what & Repoze.who </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">pluggable: Genshi, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Support for <a href="/wiki/Memcached" title="Memcached">memcached</a>, and any WSGI compliant system </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/w/index.php?title=ToscaWidgets&action=edit&redlink=1" class="new" title="ToscaWidgets (page does not exist)">ToscaWidgets</a>, utilizing FormEncode </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Web2py" title="Web2py">web2py</a> </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes<sup id="cite_ref-98" class="reference"><a href="#cite_note-98"><span class="cite-bracket">[</span>98<span class="cite-bracket">]</span></a></sup> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/BlueBream" class="mw-redirect" title="BlueBream">BlueBream</a> (Zope 3) </th> <td>Python </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">via add-on products, e.g. <a href="/wiki/Plone_(software)" title="Plone (software)">Plone</a> w/KSS </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">ZODB, <a href="/wiki/SQLObject" title="SQLObject">SQLObject</a>, SQLAlchemy </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Unit tests, functional tests </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">ZODB generations </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">ACL-based </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Zope" title="Zope">Zope</a> 2 </th> <td>Python </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">ZODB, SQLObject, SQLAlchemy </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Unit tests </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">ACL-based </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">CMFFormController </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Ruby_2">Ruby</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=23" title="Edit section: Ruby"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Ruby_on_Rails" title="Ruby on Rails">Ruby on Rails</a> </th> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Prototype_JavaScript_Framework" title="Prototype JavaScript Framework">Prototype</a>, <a href="/wiki/Script.aculo.us" class="mw-redirect" title="Script.aculo.us">script.aculo.us</a>, <a href="/wiki/JQuery" title="JQuery">jQuery</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/ActiveRecord_(Rails)" class="mw-redirect" title="ActiveRecord (Rails)">ActiveRecord</a>, <a href="/wiki/Ruby_on_Rails" title="Ruby on Rails">Action Pack</a> </td> <td>Push </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/ActiveRecord_(Rails)" class="mw-redirect" title="ActiveRecord (Rails)">ActiveRecord</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Unit_testing" title="Unit testing">Unit Tests</a>, Functional Tests and Integration Tests </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Plug-in </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Sinatra_(software)" title="Sinatra (software)">Sinatra</a> </th> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Push </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">ORM-independent </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">rack-test </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">through <a href="/wiki/Rack_(web_server_interface)" title="Rack (web server interface)">Rack</a> middleware </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">through <a href="/wiki/Rack_(web_server_interface)" title="Rack (web server interface)">Rack</a> middleware </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Others_2">Others</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=24" title="Edit section: Others"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable sortable" style="font-size: 90%"> <tbody><tr> <th>Project </th> <th>Language </th> <th><a href="/wiki/Ajax_(programming)" title="Ajax (programming)">Ajax</a> </th> <th><a href="/wiki/Model%E2%80%93view%E2%80%93controller" title="Model–view–controller">MVC</a> framework </th> <th><a href="/wiki/Web_application_framework#Push-based_vs._pull-based" class="mw-redirect" title="Web application framework">MVC push-pull</a> </th> <th><a href="/wiki/Internationalization_and_localization" title="Internationalization and localization">i18n & L10n?</a> </th> <th><a href="/wiki/Object-relational_mapping" class="mw-redirect" title="Object-relational mapping">ORM</a> </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/AIDA/Web" title="AIDA/Web">AIDA/Web</a> </th> <td><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/Gemstone_(database)" class="mw-redirect" title="Gemstone (database)">Gemstone/S</a>, GLORP, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">SUnit </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Oracle_Application_Express" title="Oracle Application Express">Application Express</a> </th> <td><a href="/wiki/PL/SQL" title="PL/SQL">PL/SQL</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Adobe_Flex" class="mw-redirect" title="Adobe Flex">Flex</a> </th> <td><a href="/wiki/ActionScript" title="ActionScript">ActionScript</a>, <a href="/wiki/MXML" title="MXML">MXML</a> </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">Not by name but similar technology<sup id="cite_ref-99" class="reference"><a href="#cite_note-99"><span class="cite-bracket">[</span>99<span class="cite-bracket">]</span></a></sup> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">FlexUnit </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Lift_(web_framework)" title="Lift (web framework)">Lift</a> </th> <td><a href="/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td>Pull </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/w/index.php?title=ScalaTest&action=edit&redlink=1" class="new" title="ScalaTest (page does not exist)">ScalaTest</a>, <a href="/wiki/Selenium" title="Selenium">Selenium</a><sup id="cite_ref-100" class="reference"><a href="#cite_note-100"><span class="cite-bracket">[</span>100<span class="cite-bracket">]</span></a></sup> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Opa_(programming_language)" title="Opa (programming language)">Opa</a> </th> <td>Opa </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/MongoDB" title="MongoDB">MongoDB</a> </td> <td> </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/OpenACS" class="mw-redirect" title="OpenACS">OpenACS</a> </th> <td><a href="/wiki/Tcl" title="Tcl">Tcl</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td></tr> <tr> <th style="background: #ececec; color: black; font-weight: bold; vertical-align: middle; text-align: left;" class="table-rh"><a href="/wiki/Seaside_(software)" title="Seaside (software)">Seaside</a> </th> <td><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"><a href="/wiki/JQuery" title="JQuery">jQuery</a>, <a href="/wiki/JQuery_UI" title="JQuery UI">jQuery UI</a>, Prototype JavaScript Framework, <a href="/wiki/Script.aculo.us" class="mw-redirect" title="Script.aculo.us">script.aculo.us</a>, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Yes </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">GLORP, Gemstone/S, more </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Unit tests, SUnit </td> <td> </td> <td> </td> <td style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no">No, intentionally </td> <td> </td> <td style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes">Magritte </td></tr> <tr> <th>Project </th> <th>Language </th> <th>Ajax </th> <th>MVC framework </th> <th>MVC push-pull </th> <th>i18n & L10n? </th> <th>ORM </th> <th>Testing framework(s) </th> <th><a href="/wiki/Schema_migration" title="Schema migration">DB migration</a> framework(s) </th> <th>Security framework(s) </th> <th>Template framework(s) </th> <th>Caching framework(s) </th> <th>Form validation framework(s) </th></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=25" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1266661725">.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}</style><ul role="navigation" aria-label="Portals" class="noprint portalbox portalborder portalright"> <li class="portalbox-entry"><span class="portalbox-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Octicons-terminal.svg" class="mw-file-description"><img alt="icon" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/24px-Octicons-terminal.svg.png" decoding="async" width="24" height="28" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/37px-Octicons-terminal.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/49px-Octicons-terminal.svg.png 2x" data-file-width="896" data-file-height="1024" /></a></span></span><span class="portalbox-link"><a href="/wiki/Portal:Computer_programming" title="Portal:Computer programming">Computer programming portal</a></span></li></ul> <ul><li><a href="/wiki/Comparison_of_JavaScript-based_web_frameworks" title="Comparison of JavaScript-based web frameworks">Comparison of JavaScript-based web frameworks</a></li> <li><a href="/wiki/Comparison_of_shopping_cart_software" title="Comparison of shopping cart software">Comparison of shopping cart software</a></li> <li><a href="/wiki/Content_management_system" title="Content management system">Content management system</a></li> <li><a href="/wiki/Java_view_technologies_and_frameworks" title="Java view technologies and frameworks">Java view technologies and frameworks</a></li> <li><a href="/wiki/List_of_content_management_systems" title="List of content management systems">List of content management systems</a></li> <li><a href="/wiki/List_of_rich_web_application_frameworks" title="List of rich web application frameworks">List of rich web application frameworks</a></li> <li><a href="/wiki/List_of_web_service_frameworks" title="List of web service frameworks">List of web service frameworks</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Comparison_of_server-side_web_frameworks&action=edit&section=26" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-csla_release-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-csla_release_1-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/MarimerLLC/csla/releases/tag/v4.11.2">"Version 4.11.2"</a>. Github<span class="reference-accessdate">. Retrieved <span class="nowrap">4 September</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Version+4.11.2&rft.pub=Github&rft_id=https%3A%2F%2Fgithub.com%2FMarimerLLC%2Fcsla%2Freleases%2Ftag%2Fv4.11.2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.castleproject.org/download/">"Download - Castle Project"</a>. <i>castleproject.org</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=castleproject.org&rft.atitle=Download+-+Castle+Project&rft_id=http%3A%2F%2Fwww.castleproject.org%2Fdownload%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blog.cppcms.com/">"CppCMS Blog"</a>. Blog.cppcms.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=CppCMS+Blog&rft.pub=Blog.cppcms.com&rft_id=http%3A%2F%2Fblog.cppcms.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/drogonframework/drogon/tags">"drogonframework/drogon"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=drogonframework%2Fdrogon&rft_id=https%3A%2F%2Fgithub.com%2Fdrogonframework%2Fdrogon%2Ftags&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-POCO_C++_Libraries_release-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-POCO_C++_Libraries_release_5-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/pocoproject/poco/releases">"Releases - pocoproject/poco"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Releases+-+pocoproject%2Fpoco&rft_id=https%3A%2F%2Fgithub.com%2Fpocoproject%2Fpoco%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.webtoolkit.eu/wt/doc/reference/html/Releasenotes.html">"Wt: Release notes"</a>. <i>www.webtoolkit.eu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.webtoolkit.eu&rft.atitle=Wt%3A+Release+notes&rft_id=https%3A%2F%2Fwww.webtoolkit.eu%2Fwt%2Fdoc%2Freference%2Fhtml%2FReleasenotes.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-Coldbox_Platform_release-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-Coldbox_Platform_release_7-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://forgebox.io/view/coldbox#versions">"ColdBox Platform Versions"</a>. forgebox.io<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-05-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ColdBox+Platform+Versions&rft.pub=forgebox.io&rft_id=https%3A%2F%2Fforgebox.io%2Fview%2Fcoldbox%23versions&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-28a378555c5b7ef6dae071ad001ba3d91f9a04cc-v18-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-28a378555c5b7ef6dae071ad001ba3d91f9a04cc-v18_8-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/phoenixframework/phoenix/tags">"phoenixframework/phoenix"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=phoenixframework%2Fphoenix&rft_id=https%3A%2F%2Fgithub.com%2Fphoenixframework%2Fphoenix%2Ftags&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/snapframework/snap/tags">"snapframework/snap"</a>. <i>github.com</i>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=github.com&rft.atitle=snapframework%2Fsnap&rft_id=https%3A%2F%2Fgithub.com%2Fsnapframework%2Fsnap%2Ftags&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-b89a2fc84144e81baf0e6998e48da77e300a5d39-v18-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-b89a2fc84144e81baf0e6998e48da77e300a5d39-v18_10-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/yesodweb/yesod/tags">"yesodweb/yesod"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=yesodweb%2Fyesod&rft_id=https%3A%2F%2Fgithub.com%2Fyesodweb%2Fyesod%2Ftags&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-d44f238f83de7af2e27b9908caae9d2514e29b04-v18-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-d44f238f83de7af2e27b9908caae9d2514e29b04-v18_11-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/apache/ofbiz-plugins/releases/tag/release18.12.17">"Release 18.12.17"</a>. 11 November 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">20 November</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+18.12.17&rft.date=2024-11-11&rft_id=https%3A%2F%2Fgithub.com%2Fapache%2Fofbiz-plugins%2Freleases%2Ftag%2Frelease18.12.17&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-b0fb8b0d3c18b4c5307c1a65cb7e1dc6d382210a-v18-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-b0fb8b0d3c18b4c5307c1a65cb7e1dc6d382210a-v18_12-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/apache/struts/releases/tag/STRUTS_7_0_0">"Release 7.0.0"</a>. 11 December 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">17 January</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+7.0.0&rft.date=2024-12-11&rft_id=https%3A%2F%2Fgithub.com%2Fapache%2Fstruts%2Freleases%2Ftag%2FSTRUTS_7_0_0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-58b52d0c2d06efd3bf5fbbf98f9542844e0fc25f-v18-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-58b52d0c2d06efd3bf5fbbf98f9542844e0fc25f-v18_13-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://tapestry.apache.org/download.html">"Download"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Download&rft_id=https%3A%2F%2Ftapestry.apache.org%2Fdownload.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-f0fa2b8fb06ccb39dffd835af4cb36f7a3e1944e-v18-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-f0fa2b8fb06ccb39dffd835af4cb36f7a3e1944e-v18_14-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"> <a rel="nofollow" class="external text" href="https://wicket.apache.org/news/2024/03/">https://wicket.apache.org/news/2024/03/</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft_id=https%3A%2F%2Fwicket.apache.org%2Fnews%2F2024%2F03%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: </span><span class="cs1-visible-error citation-comment">Missing or empty <code class="cs1-code">|title=</code> (<a href="/wiki/Help:CS1_errors#citation_missing_title" title="Help:CS1 errors">help</a>)</span></span> </li> <li id="cite_note-wikidata-96b5f86e069398a7e48c9fccbc4f544b42eec95a-v18-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-96b5f86e069398a7e48c9fccbc4f544b42eec95a-v18_15-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/jakartaee/faces/releases/tag/4.1.0-RELEASE">"Release 4.1.0"</a>. 5 June 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">5 June</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+4.1.0&rft.date=2024-06-05&rft_id=https%3A%2F%2Fgithub.com%2Fjakartaee%2Ffaces%2Freleases%2Ftag%2F4.1.0-RELEASE&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-5bf8761488d646a046eecd83cb097c3a56c83eee-v18-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-5bf8761488d646a046eecd83cb097c3a56c83eee-v18_16-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/grails/grails-core/releases/tag/v6.2.3">"Release 6.2.3"</a>. 3 January 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">22 January</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+6.2.3&rft.date=2025-01-03&rft_id=https%3A%2F%2Fgithub.com%2Fgrails%2Fgrails-core%2Freleases%2Ftag%2Fv6.2.3&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-6d8b12a0f4d315a8021f7a48370f74cc143122d5-v18-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-6d8b12a0f4d315a8021f7a48370f74cc143122d5-v18_17-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/emweb/jwt/releases/tag/4.11.3">"Release 4.11.3"</a>. 19 February 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">23 February</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+4.11.3&rft.date=2025-02-19&rft_id=https%3A%2F%2Fgithub.com%2Femweb%2Fjwt%2Freleases%2Ftag%2F4.11.3&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-d3ecb42fdcd51a638f01b6fb8ecfdd5a2c319512-v18-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-d3ecb42fdcd51a638f01b6fb8ecfdd5a2c319512-v18_18-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/netty/netty/releases/tag/netty-4.1.118.Final">"Release 4.1.118"</a>. 10 February 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">25 February</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+4.1.118&rft.date=2025-02-10&rft_id=https%3A%2F%2Fgithub.com%2Fnetty%2Fnetty%2Freleases%2Ftag%2Fnetty-4.1.118.Final&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-d4c72e4cec1464165ced6205d0a6640d4b74a0a7-v18-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-d4c72e4cec1464165ced6205d0a6640d4b74a0a7-v18_19-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/playframework/playframework/releases/tag/3.0.3">"Release 3.0.3"</a>. 7 May 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">9 May</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+3.0.3&rft.date=2024-05-07&rft_id=https%3A%2F%2Fgithub.com%2Fplayframework%2Fplayframework%2Freleases%2Ftag%2F3.0.3&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-6e1a29939358dc7877a023288b9bc80a1369304a-v18-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-6e1a29939358dc7877a023288b9bc80a1369304a-v18_20-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/spring-projects/spring-framework/releases/tag/v6.2.1">"v6.2.1"</a>. 12 December 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">12 December</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=v6.2.1&rft.date=2024-12-12&rft_id=https%3A%2F%2Fgithub.com%2Fspring-projects%2Fspring-framework%2Freleases%2Ftag%2Fv6.2.1&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-20814505e091a70001a066db3386e045573b8951-v18-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-20814505e091a70001a066db3386e045573b8951-v18_21-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/vaadin/platform/releases">"vaadin/framework/releases"</a>. 22 December 2024.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=vaadin%2Fframework%2Freleases&rft.date=2024-12-22&rft_id=https%3A%2F%2Fgithub.com%2Fvaadin%2Fplatform%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.wavemaker.com/learn/wavemaker-release-notes/v11-6-0">"WaveMaker 11.6.0 - Release date: 03 March 2024 | WaveMaker Docs"</a>. <i>www.wavemaker.com</i>. 2024-03-04<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-06</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.wavemaker.com&rft.atitle=WaveMaker+11.6.0+-+Release+date%3A+03+March+2024+%7C+WaveMaker+Docs&rft.date=2024-03-04&rft_id=https%3A%2F%2Fwww.wavemaker.com%2Flearn%2Fwavemaker-release-notes%2Fv11-6-0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-f83a166f81f004fded46fc50ab545c3957391e38-v18-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-f83a166f81f004fded46fc50ab545c3957391e38-v18_23-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/expressjs/express/releases/tag/5.0.1">"Release 5.0.1"</a>. 8 October 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">21 October</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+5.0.1&rft.date=2024-10-08&rft_id=https%3A%2F%2Fgithub.com%2Fexpressjs%2Fexpress%2Freleases%2Ftag%2F5.0.1&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-29130fa078fd8346e6e121245f82906a1cd7ff66-v18-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-29130fa078fd8346e6e121245f82906a1cd7ff66-v18_24-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/fastify/fastify/releases/tag/v5.2.1">"Release 5.2.1"</a>. 6 January 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">18 January</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+5.2.1&rft.date=2025-01-06&rft_id=https%3A%2F%2Fgithub.com%2Ffastify%2Ffastify%2Freleases%2Ftag%2Fv5.2.1&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-110079781dae635c1c2a92f4bce6ce9af60aa4ef-v18-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-110079781dae635c1c2a92f4bce6ce9af60aa4ef-v18_25-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://dev.to/meteor/meteor-3-is-officially-here-3gml">"Meteor.js 3 is officially here!"</a>. 22 July 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">19 August</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Meteor.js+3+is+officially+here%21&rft.date=2024-07-22&rft_id=https%3A%2F%2Fdev.to%2Fmeteor%2Fmeteor-3-is-officially-here-3gml&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-bbb90c52811a04809d134e2db330d6ef9a471dbe-v18-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-bbb90c52811a04809d134e2db330d6ef9a471dbe-v18_26-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/nestjs/nest/releases/tag/v11.0.10">"Release 11.0.10"</a>. 17 February 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">25 February</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+11.0.10&rft.date=2025-02-17&rft_id=https%3A%2F%2Fgithub.com%2Fnestjs%2Fnest%2Freleases%2Ftag%2Fv11.0.10&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-f7ef548e7a59d150fb0bc4e1910d4956baec4e92-v18-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-f7ef548e7a59d150fb0bc4e1910d4956baec4e92-v18_27-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/vercel/next.js/releases/tag/v15.1.7">"Release 15.1.7"</a>. 11 February 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">25 February</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+15.1.7&rft.date=2025-02-11&rft_id=https%3A%2F%2Fgithub.com%2Fvercel%2Fnext.js%2Freleases%2Ftag%2Fv15.1.7&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-7445895eb95e7e07f47c55cc22417669dddf3eb8-v18-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-7445895eb95e7e07f47c55cc22417669dddf3eb8-v18_28-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/nuxt/nuxt/releases/tag/v3.15.4">"Release 3.15.4"</a>. 29 January 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">25 February</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+3.15.4&rft.date=2025-01-29&rft_id=https%3A%2F%2Fgithub.com%2Fnuxt%2Fnuxt%2Freleases%2Ftag%2Fv3.15.4&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-d5769e83648f8518b7f5ee1a07e727a3cab2f906-v18-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-d5769e83648f8518b7f5ee1a07e727a3cab2f906-v18_29-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/remix-run/remix/releases/tag/remix%402.15.3">"Release 2.15.3"</a>. 30 January 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">18 February</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+2.15.3&rft.date=2025-01-30&rft_id=https%3A%2F%2Fgithub.com%2Fremix-run%2Fremix%2Freleases%2Ftag%2Fremix%25402.15.3&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-a1419979d22b320a43f8885977c73efa48aca804-v18-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-a1419979d22b320a43f8885977c73efa48aca804-v18_30-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/balderdashy/sails/releases/tag/v1.5.11">"Release 1.5.11"</a>. 24 May 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">18 November</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+1.5.11&rft.date=2024-05-24&rft_id=https%3A%2F%2Fgithub.com%2Fbalderdashy%2Fsails%2Freleases%2Ftag%2Fv1.5.11&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-9bc436348e4630889cd8696d51525d5d07955644-v18-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-9bc436348e4630889cd8696d51525d5d07955644-v18_31-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.npmjs.com/package/@sveltejs/kit/v/1.15.5">"@sveltejs/kitTypeScript icon, indicating that this package has built-in type declarations1.15.5"</a>. <i>npmjs</i><span class="reference-accessdate">. Retrieved <span class="nowrap">26 November</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=npmjs&rft.atitle=%40sveltejs%2FkitTypeScript+icon%2C+indicating+that+this+package+has+built-in+type+declarations1.15.5&rft_id=https%3A%2F%2Fwww.npmjs.com%2Fpackage%2F%40sveltejs%2Fkit%2Fv%2F1.15.5&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-Catalyst_release-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-Catalyst_release_32-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://metacpan.org/release/Catalyst-Runtime">"Catalyst-Runtime"</a>. metacpan.org<span class="reference-accessdate">. Retrieved <span class="nowrap">15 August</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Catalyst-Runtime&rft.pub=metacpan.org&rft_id=https%3A%2F%2Fmetacpan.org%2Frelease%2FCatalyst-Runtime&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-Dancer_release-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-Dancer_release_33-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://metacpan.org/release/Dancer2">"Dancer2 Releases"</a>. perldancer.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-08-15</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Dancer2+Releases&rft.pub=perldancer.org&rft_id=https%3A%2F%2Fmetacpan.org%2Frelease%2FDancer2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-mojolicious_release-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-mojolicious_release_34-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://metacpan.org/release/Mojolicious">"Mojolicious-9.30"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-08-15</span></span> – via <a href="/wiki/CPAN" title="CPAN">MetaCPAN</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Mojolicious-9.30&rft_id=https%3A%2F%2Fmetacpan.org%2Frelease%2FMojolicious&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-cakephp_release-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-cakephp_release_35-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://bakery.cakephp.org/2025/01/16/cakephp_515.html">"CakePHP 5.1.5 Released"</a>. <i>CakePHP Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=CakePHP+Blog&rft.atitle=CakePHP+5.1.5+Released&rft_id=https%3A%2F%2Fbakery.cakephp.org%2F2025%2F01%2F16%2Fcakephp_515.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-CodeIgniter_release-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-CodeIgniter_release_36-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/codeigniter4/CodeIgniter4/releases">"CodeIgniter Releases"</a>. github.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=CodeIgniter+Releases&rft.pub=github.com&rft_id=https%3A%2F%2Fgithub.com%2Fcodeigniter4%2FCodeIgniter4%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-Fat-Free_Framework_release-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-Fat-Free_Framework_release_37-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/bcosca/fatfree-core/blob/master/CHANGELOG.md">"fatfree/lib/CHANGELOG.md"</a>. github.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-12-29</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=fatfree%2Flib%2FCHANGELOG.md&rft.pub=github.com&rft_id=https%3A%2F%2Fgithub.com%2Fbcosca%2Ffatfree-core%2Fblob%2Fmaster%2FCHANGELOG.md&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-FuelPHP_release-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-FuelPHP_release_38-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/fuel/core/releases">"Releases - fuel/core"</a>. github.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-04-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Releases+-+fuel%2Fcore&rft.pub=github.com&rft_id=https%3A%2F%2Fgithub.com%2Ffuel%2Fcore%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.antradar.com/download.php">"Antradar Downloads"</a>. <i>antradar.com</i>. 2023-11-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-12-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=antradar.com&rft.atitle=Antradar+Downloads&rft.date=2023-11-24&rft_id=http%3A%2F%2Fwww.antradar.com%2Fdownload.php&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-Jamroom_release-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-Jamroom_release_40-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.softaculous.com/apps/cms/Jamroom">"Softaculous"</a>. <i>www.softaculous.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-04-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.softaculous.com&rft.atitle=Softaculous&rft_id=https%3A%2F%2Fwww.softaculous.com%2Fapps%2Fcms%2FJamroom&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-kajona_release-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-kajona_release_41-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/kajona/kajonacms/releases">"Releases"</a>. github.com<span class="reference-accessdate">. Retrieved <span class="nowrap">10 June</span> 2017</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Releases&rft.pub=github.com&rft_id=https%3A%2F%2Fgithub.com%2Fkajona%2Fkajonacms%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-laminas_release-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-laminas_release_42-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/laminas/laminas-mvc/tags">"GitHub - laminas/laminas-mvc"</a>. 20 March 2019 – via GitHub.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=GitHub+-+laminas%2Flaminas-mvc&rft.date=2019-03-20&rft_id=https%3A%2F%2Fgithub.com%2Flaminas%2Flaminas-mvc%2Ftags&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-f3e9b41c6bc8d9a1307f686d28525e8c176a5210-v18-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-f3e9b41c6bc8d9a1307f686d28525e8c176a5210-v18_43-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/laravel/framework/releases/tag/v12.0.1">"Release v12.0.1"</a>. 25 February 2025.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+v12.0.1&rft.date=2025-02-25&rft_id=https%3A%2F%2Fgithub.com%2Flaravel%2Fframework%2Freleases%2Ftag%2Fv12.0.1&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-li3_release-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-li3_release_44-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/UnionOfRAD/lithium/releases">"Releases - UnionOfRAD/lithium"</a>. github.com<span class="reference-accessdate">. Retrieved <span class="nowrap">24 December</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Releases+-+UnionOfRAD%2Flithium&rft.pub=github.com&rft_id=https%3A%2F%2Fgithub.com%2FUnionOfRAD%2Flithium%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-phalcon_release-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-phalcon_release_45-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/phalcon/cphalcon/releases">"phalcon/cphalcon"</a>. github.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-09</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=phalcon%2Fcphalcon&rft.pub=github.com&rft_id=https%3A%2F%2Fgithub.com%2Fphalcon%2Fcphalcon%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/popphp/popphp-framework/releases">"Releases - popphp/popphp-framework"</a>. github.com. 2019-10-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-05-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Releases+-+popphp%2Fpopphp-framework&rft.pub=github.com&rft.date=2019-10-17&rft_id=https%3A%2F%2Fgithub.com%2Fpopphp%2Fpopphp-framework%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-prado_release-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-prado_release_47-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.pradoframework.net/site/">"PRADO PHP Framework"</a>. pradoframework.net<span class="reference-accessdate">. Retrieved <span class="nowrap">23 April</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=PRADO+PHP+Framework&rft.pub=pradoframework.net&rft_id=http%3A%2F%2Fwww.pradoframework.net%2Fsite%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20131016012055/http://www.pradosoft.com/license/">"License of PRADO"</a>. pradosoft.com. 2013. Archived from <a rel="nofollow" class="external text" href="http://www.pradosoft.com/license/">the original</a> on 2013-10-16<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-10-16</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=License+of+PRADO&rft.pub=pradosoft.com&rft.date=2013&rft_id=http%3A%2F%2Fwww.pradosoft.com%2Flicense%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-silverstripe_release-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-silverstripe_release_49-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.silverstripe.org/download">"Stable Download"</a>. silverstripe.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-11-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Stable+Download&rft.pub=silverstripe.org&rft_id=https%3A%2F%2Fwww.silverstripe.org%2Fdownload&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-Smart_Framework_PHP_release-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-Smart_Framework_PHP_release_50-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/unix-world/Smart.Framework">"unix-world / Smart.Framework"</a>. github.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-04-12</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=unix-world+%2F+Smart.Framework&rft.pub=github.com&rft_id=https%3A%2F%2Fgithub.com%2Funix-world%2FSmart.Framework&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-symfony_release-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-symfony_release_51-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite id="CITEREFPotencier2024" class="citation web cs1">Potencier, Fabien (2024-11-29). <a rel="nofollow" class="external text" href="https://symfony.com/blog/symfony-7-2-0-released">"Symfony 7.2.0 released"</a>. Blog. <i>symfony.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-12-08</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=symfony.com&rft.atitle=Symfony+7.2.0+released&rft.date=2024-11-29&rft.aulast=Potencier&rft.aufirst=Fabien&rft_id=https%3A%2F%2Fsymfony.com%2Fblog%2Fsymfony-7-2-0-released&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-yii_release-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-yii_release_52-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.yiiframework.com/news/694/yii-2-0-52">"Yii 2.0.52"</a>. yiiframework.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Yii+2.0.52&rft.pub=yiiframework.com&rft_id=https%3A%2F%2Fwww.yiiframework.com%2Fnews%2F694%2Fyii-2-0-52&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-73f354acbedc0fd56489883f4cee5161e1f17c29-v18-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-73f354acbedc0fd56489883f4cee5161e1f17c29-v18_53-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://pypi.org/project/bluebream/1.0/">"bluebream 1.0"</a>. 18 January 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">18 December</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=bluebream+1.0&rft.date=2011-01-18&rft_id=https%3A%2F%2Fpypi.org%2Fproject%2Fbluebream%2F1.0%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-aa495268f8e5ae6ee2a324406b6aa3159b53f47f-v18-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-aa495268f8e5ae6ee2a324406b6aa3159b53f47f-v18_54-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/cherrypy/cherrypy/releases/tag/v18.10.0">"Release v18.10.0"</a>. 15 June 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">2 February</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+v18.10.0&rft.date=2024-06-15&rft_id=https%3A%2F%2Fgithub.com%2Fcherrypy%2Fcherrypy%2Freleases%2Ftag%2Fv18.10.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-fed5bd1994df9bc0aaf25e92bb3d79a91cf61cf6-v18-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-fed5bd1994df9bc0aaf25e92bb3d79a91cf61cf6-v18_55-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://forge.extranet.logilab.fr/cubicweb/cubicweb/-/releases/4.8.0">"Release 4.8.0"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+4.8.0&rft_id=https%3A%2F%2Fforge.extranet.logilab.fr%2Fcubicweb%2Fcubicweb%2F-%2Freleases%2F4.8.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-00620f17aba8e474c618efc3a57e2b7fbfd26b38-v18-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-00620f17aba8e474c618efc3a57e2b7fbfd26b38-v18_56-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/django/django/releases/tag/5.1.6">"Release 5.1.6"</a>. 5 February 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">21 February</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+5.1.6&rft.date=2025-02-05&rft_id=https%3A%2F%2Fgithub.com%2Fdjango%2Fdjango%2Freleases%2Ftag%2F5.1.6&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-a1359be80230c4721ef18ecaae46e5e562b9cd43-v18-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-a1359be80230c4721ef18ecaae46e5e562b9cd43-v18_57-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/fastapi/fastapi/releases/tag/0.115.8">"Release 0.115.8"</a>. 30 January 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">22 February</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+0.115.8&rft.date=2025-01-30&rft_id=https%3A%2F%2Fgithub.com%2Ffastapi%2Ffastapi%2Freleases%2Ftag%2F0.115.8&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-ef007ff21a51fcd9fc50662abc1acb7d67e2124d-v18-58"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-ef007ff21a51fcd9fc50662abc1acb7d67e2124d-v18_58-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/pallets/flask/releases/tag/3.1.0">"Release 3.1.0"</a>. 13 November 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">21 November</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+3.1.0&rft.date=2024-11-13&rft_id=https%3A%2F%2Fgithub.com%2Fpallets%2Fflask%2Freleases%2Ftag%2F3.1.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-f74188b07ae704415f81b624381fa416f0a2231b-v18-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-f74188b07ae704415f81b624381fa416f0a2231b-v18_59-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://cloud.google.com/appengine/docs/standard/python/release-notes">"Python 2.7 release notes"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">18 December</span> 2020</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Python+2.7+release+notes&rft_id=https%3A%2F%2Fcloud.google.com%2Fappengine%2Fdocs%2Fstandard%2Fpython%2Frelease-notes&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-629894db6d4ec5f594339f6266fe332849ec0afc-v18-60"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-629894db6d4ec5f594339f6266fe332849ec0afc-v18_60-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/zopefoundation/grok/releases/tag/5.1">"Release 5.1"</a>. 28 October 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">22 November</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+5.1&rft.date=2024-10-28&rft_id=https%3A%2F%2Fgithub.com%2Fzopefoundation%2Fgrok%2Freleases%2Ftag%2F5.1&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-895e498d20d1f2872379c7802facf148ac4456a5-v18-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-895e498d20d1f2872379c7802facf148ac4456a5-v18_61-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/benoitc/gunicorn/releases/tag/23.0.0">"Release 23.0.0"</a>. 10 August 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">22 August</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+23.0.0&rft.date=2024-08-10&rft_id=https%3A%2F%2Fgithub.com%2Fbenoitc%2Fgunicorn%2Freleases%2Ftag%2F23.0.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-2a504c221e53193cc2038961f5a702355bb3c1d0-v18-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-2a504c221e53193cc2038961f5a702355bb3c1d0-v18_62-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"> <a rel="nofollow" class="external text" href="https://github.com/jam-py/jam-py/releases/tag/5.4.136">https://github.com/jam-py/jam-py/releases/tag/5.4.136</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft_id=https%3A%2F%2Fgithub.com%2Fjam-py%2Fjam-py%2Freleases%2Ftag%2F5.4.136&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: </span><span class="cs1-visible-error citation-comment">Missing or empty <code class="cs1-code">|title=</code> (<a href="/wiki/Help:CS1_errors#citation_missing_title" title="Help:CS1 errors">help</a>)</span></span> </li> <li id="cite_note-wikidata-432664666f51f89a91160c8da36e76d1e3274e30-v18-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-432664666f51f89a91160c8da36e76d1e3274e30-v18_63-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/pyjs/pyjs/releases/tag/0.8.1a">"Release 0.8.1a"</a>. 9 May 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">22 July</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+0.8.1a&rft.date=2012-05-09&rft_id=https%3A%2F%2Fgithub.com%2Fpyjs%2Fpyjs%2Freleases%2Ftag%2F0.8.1a&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-ffdbcf56b7b2430a14626dbdd3abd76e29ff4823-v18-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-ffdbcf56b7b2430a14626dbdd3abd76e29ff4823-v18_64-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/Pylons/pylons/releases/tag/v1.0.2">"Release 1.0.2"</a>. 22 July 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">22 July</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+1.0.2&rft.date=2015-07-22&rft_id=https%3A%2F%2Fgithub.com%2FPylons%2Fpylons%2Freleases%2Ftag%2Fv1.0.2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-4b42ac1949dac41fed9f3514a42ffed507a78293-v18-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-4b42ac1949dac41fed9f3514a42ffed507a78293-v18_65-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/Pylons/pyramid/releases/tag/2.0.2">"Release 2.0.2"</a>. 25 August 2023<span class="reference-accessdate">. Retrieved <span class="nowrap">19 September</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+2.0.2&rft.date=2023-08-25&rft_id=https%3A%2F%2Fgithub.com%2FPylons%2Fpyramid%2Freleases%2Ftag%2F2.0.2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-ba212a9e3347ea9995bd7ef7332fa88069cf66b6-v18-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-ba212a9e3347ea9995bd7ef7332fa88069cf66b6-v18_66-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/tornadoweb/tornado/releases/tag/v6.4.2">"Release 6.4.2"</a>. 22 November 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">1 December</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+6.4.2&rft.date=2024-11-22&rft_id=https%3A%2F%2Fgithub.com%2Ftornadoweb%2Ftornado%2Freleases%2Ftag%2Fv6.4.2&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-345d3bdccd367c5c02d8c675c31edeee840ff700-v18-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-345d3bdccd367c5c02d8c675c31edeee840ff700-v18_67-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/TurboGears/tg2/releases/tag/tg2.5.0">"Release 2.5.0"</a>. 18 February 2025<span class="reference-accessdate">. Retrieved <span class="nowrap">1 March</span> 2025</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Release+2.5.0&rft.date=2025-02-18&rft_id=https%3A%2F%2Fgithub.com%2FTurboGears%2Ftg2%2Freleases%2Ftag%2Ftg2.5.0&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-f3fe63ae355e0f9cef1873a010dccf77c60e7033-v18-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-f3fe63ae355e0f9cef1873a010dccf77c60e7033-v18_68-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.web2py.com/">"web2py Web Framework"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=web2py+Web+Framework&rft_id=http%3A%2F%2Fwww.web2py.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-3775e51129d135800dc3c147ac901e0cb8bdc5a1-v18-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-3775e51129d135800dc3c147ac901e0cb8bdc5a1-v18_69-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://zope.readthedocs.io/en/latest/changes.html">"Change log"</a>. 9 September 2022<span class="reference-accessdate">. Retrieved <span class="nowrap">18 October</span> 2022</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Change+log&rft.date=2022-09-09&rft_id=https%3A%2F%2Fzope.readthedocs.io%2Fen%2Flatest%2Fchanges.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-changes-70"><span class="mw-cite-backlink"><b><a href="#cite_ref-changes_70-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://padrinorb.com/blog/padrino-0-14-4/">"Padrino 0.14.4 release"</a>. <i>Padrino</i><span class="reference-accessdate">. Retrieved <span class="nowrap">5 September</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Padrino&rft.atitle=Padrino+0.14.4+release&rft_id=https%3A%2F%2Fpadrinorb.com%2Fblog%2Fpadrino-0-14-4%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-431c5fc486840ed67da796e3110bd7db98ce0f98-v18-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-431c5fc486840ed67da796e3110bd7db98ce0f98-v18_71-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://rubyonrails.org/2024/12/13/Rails-Version-8-0-1-has-been-released">"Rails Version 8.0.1 has been released!"</a>. 13 December 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">13 December</span> 2024</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Rails+Version+8.0.1+has+been+released%21&rft.date=2024-12-13&rft_id=https%3A%2F%2Frubyonrails.org%2F2024%2F12%2F13%2FRails-Version-8-0-1-has-been-released&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-wikidata-733942497525f0b6276cb61b3f5a06ad8291fd1a-v18-72"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-733942497525f0b6276cb61b3f5a06ad8291fd1a-v18_72-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"> <a rel="nofollow" class="external text" href="https://github.com/sinatra/sinatra/tags">https://github.com/sinatra/sinatra/tags</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft_id=https%3A%2F%2Fgithub.com%2Fsinatra%2Fsinatra%2Ftags&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span> <span class="cs1-visible-error citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_web" title="Template:Cite web">cite web</a>}}</code>: </span><span class="cs1-visible-error citation-comment">Missing or empty <code class="cs1-code">|title=</code> (<a href="/wiki/Help:CS1_errors#citation_missing_title" title="Help:CS1 errors">help</a>)</span></span> </li> <li id="cite_note-73"><span class="mw-cite-backlink"><b><a href="#cite_ref-73">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://grails.org/blog/2024-11-20-introducing-grails-6-2-2.html">"Introducing Grails Framework 6.2.2 Release"</a>. <i>grails.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-12-29</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=grails.org&rft.atitle=Introducing+Grails+Framework+6.2.2+Release&rft_id=https%3A%2F%2Fgrails.org%2Fblog%2F2024-11-20-introducing-grails-6-2-2.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-74"><span class="mw-cite-backlink"><b><a href="#cite_ref-74">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://blog.opalang.org/2013/02/some-great-news-on-opa.html">"The Opa Blog: Some great news on Opa"</a>. Blog.opalang.org<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=The+Opa+Blog%3A+Some+great+news+on+Opa&rft.pub=Blog.opalang.org&rft_id=http%3A%2F%2Fblog.opalang.org%2F2013%2F02%2Fsome-great-news-on-opa.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-75"><span class="mw-cite-backlink"><b><a href="#cite_ref-75">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://openacs.org/news/item?item_id=6173612">"OpenACS Home"</a>. <i>openacs.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-12-30</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=openacs.org&rft.atitle=OpenACS+Home&rft_id=https%3A%2F%2Fopenacs.org%2Fnews%2Fitem%3Fitem_id%3D6173612&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-76"><span class="mw-cite-backlink"><b><a href="#cite_ref-76">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/SeasideSt/Seaside/releases">"Releases · SeasideSt/Seaside · GitHub"</a>. <i>GitHub</i>. 25 October 2024<span class="reference-accessdate">. Retrieved <span class="nowrap">19 July</span> 2021</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Releases+%C2%B7+SeasideSt%2FSeaside+%C2%B7+GitHub&rft.date=2024-10-25&rft_id=https%3A%2F%2Fgithub.com%2FSeasideSt%2FSeaside%2Freleases&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-77"><span class="mw-cite-backlink"><b><a href="#cite_ref-77">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130823140206/http://grails.org/plugin/spring-security-core">"Grails Plugin: Spring Security Core Plugin"</a>. Grails.org. 2012-04-06. Archived from <a rel="nofollow" class="external text" href="http://grails.org/plugin/spring-security-core">the original</a> on 2013-08-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Grails+Plugin%3A+Spring+Security+Core+Plugin&rft.pub=Grails.org&rft.date=2012-04-06&rft_id=http%3A%2F%2Fgrails.org%2Fplugin%2Fspring-security-core&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-78"><span class="mw-cite-backlink"><b><a href="#cite_ref-78">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130823110300/http://grails.org/plugin/shiro">"Grails Plugin: Apache Shiro Integration for Grails"</a>. Grails.org. 2012-04-11. Archived from <a rel="nofollow" class="external text" href="http://grails.org/plugin/shiro">the original</a> on 2013-08-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Grails+Plugin%3A+Apache+Shiro+Integration+for+Grails&rft.pub=Grails.org&rft.date=2012-04-11&rft_id=http%3A%2F%2Fgrails.org%2Fplugin%2Fshiro&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-cake_installation-79"><span class="mw-cite-backlink"><b><a href="#cite_ref-cake_installation_79-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://book.cakephp.org/4/en/installation.html">"Installation - 4.x"</a>. <i>book.cakephp.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=book.cakephp.org&rft.atitle=Installation+-+4.x&rft_id=https%3A%2F%2Fbook.cakephp.org%2F4%2Fen%2Finstallation.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-80"><span class="mw-cite-backlink"><b><a href="#cite_ref-80">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://codeigniter.com/user_guide/intro/requirements.html">"Server Requirements — CodeIgniter 4 documentation"</a>. <i>codeigniter.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=codeigniter.com&rft.atitle=Server+Requirements+%E2%80%94+CodeIgniter+4+documentation&rft_id=https%3A%2F%2Fcodeigniter.com%2Fuser_guide%2Fintro%2Frequirements.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-81"><span class="mw-cite-backlink"><b><a href="#cite_ref-81">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20121108090748/http://codeigniter.com/user_guide/libraries/language.html">"Language helper included, must activate & set desired language by parsing HTTP headers"</a>. <i>Codeigniter.com</i>. Archived from <a rel="nofollow" class="external text" href="http://codeigniter.com/user_guide/libraries/language.html">the original</a> on 2012-11-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Codeigniter.com&rft.atitle=Language+helper+included%2C+must+activate+%26+set+desired+language+by+parsing+HTTP+headers&rft_id=http%3A%2F%2Fcodeigniter.com%2Fuser_guide%2Flibraries%2Flanguage.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-82"><span class="mw-cite-backlink"><b><a href="#cite_ref-82">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150515115118/http://www.codeigniter.com/user_guide/changelog.html">"Change Log : CodeIgniter User Guide"</a>. EllisLab, Inc. Archived from <a rel="nofollow" class="external text" href="http://codeigniter.com/user_guide/changelog.html">the original</a> on 15 May 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">19 March</span> 2012</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Change+Log+%3A+CodeIgniter+User+Guide&rft.pub=EllisLab%2C+Inc.&rft_id=http%3A%2F%2Fcodeigniter.com%2Fuser_guide%2Fchangelog.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-83"><span class="mw-cite-backlink"><b><a href="#cite_ref-83">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://fatfreeframework.com/3.9/getting-started">"Getting Started - Fat-Free Framework for PHP"</a>. <i>fatfreeframework.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-02-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=fatfreeframework.com&rft.atitle=Getting+Started+-+Fat-Free+Framework+for+PHP&rft_id=https%3A%2F%2Ffatfreeframework.com%2F3.9%2Fgetting-started&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-84"><span class="mw-cite-backlink"><b><a href="#cite_ref-84">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://fuelphp.com/docs/requirements.html">"Requirements - FuelPHP Documentation"</a>. <i>fuelphp.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=fuelphp.com&rft.atitle=Requirements+-+FuelPHP+Documentation&rft_id=https%3A%2F%2Ffuelphp.com%2Fdocs%2Frequirements.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-85"><span class="mw-cite-backlink"><b><a href="#cite_ref-85">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.antradar.com/blog-replacing-nano-js-gyroscope">"Replacing nano.js in Gyroscope"</a>. antradar.com. 2014-05-20<span class="reference-accessdate">. Retrieved <span class="nowrap">2015-08-20</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Replacing+nano.js+in+Gyroscope&rft.pub=antradar.com&rft.date=2014-05-20&rft_id=http%3A%2F%2Fwww.antradar.com%2Fblog-replacing-nano-js-gyroscope&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-86"><span class="mw-cite-backlink"><b><a href="#cite_ref-86">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.kajona.de/en/News/newsdetails.Kajona-V6-2-released..4a50c7d593862d586042.html">"Kajona 6.2 shifts the focus to PHP 7"</a>. <i>www.kajona.de</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.kajona.de&rft.atitle=Kajona+6.2+shifts+the+focus+to+PHP+7&rft_id=https%3A%2F%2Fwww.kajona.de%2Fen%2FNews%2Fnewsdetails.Kajona-V6-2-released..4a50c7d593862d586042.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-87"><span class="mw-cite-backlink"><b><a href="#cite_ref-87">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/laminas/laminas-migration/pull/55">"Zend/Laminas Drops PHP support prior to 7.3"</a>. <i>GitHub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2021-01-06</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Zend%2FLaminas+Drops+PHP+support+prior+to+7.3&rft_id=https%3A%2F%2Fgithub.com%2Flaminas%2Flaminas-migration%2Fpull%2F55&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-88"><span class="mw-cite-backlink"><b><a href="#cite_ref-88">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://laravel.com/">"Laravel - The PHP Framework For Web Artisans"</a>. <i>laravel.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-04-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=laravel.com&rft.atitle=Laravel+-+The+PHP+Framework+For+Web+Artisans&rft_id=https%3A%2F%2Flaravel.com%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-89"><span class="mw-cite-backlink"><b><a href="#cite_ref-89">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.phalcon.io/5.8/installation">"Phalcon v5.8 supports only PHP 8.0 and above"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Phalcon+v5.8+supports+only+PHP+8.0+and+above.&rft_id=https%3A%2F%2Fdocs.phalcon.io%2F5.8%2Finstallation&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-90"><span class="mw-cite-backlink"><b><a href="#cite_ref-90">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.pradoframework.net/site/">"PRADO PHP Framework"</a>. <i>www.pradoframework.net</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-04-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.pradoframework.net&rft.atitle=PRADO+PHP+Framework&rft_id=http%3A%2F%2Fwww.pradoframework.net%2Fsite%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-prado1-91"><span class="mw-cite-backlink">^ <a href="#cite_ref-prado1_91-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-prado1_91-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-prado1_91-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-prado1_91-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130928163438/http://www.pradosoft.com/demos/quickstart/?page=ActiveControls.Home">"PRADO QuickStart Tutorial"</a>. Pradosoft.com. Archived from <a rel="nofollow" class="external text" href="http://www.pradosoft.com/demos/quickstart/?page=ActiveControls.Home">the original</a> on 2013-09-28<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=PRADO+QuickStart+Tutorial&rft.pub=Pradosoft.com&rft_id=http%3A%2F%2Fwww.pradosoft.com%2Fdemos%2Fquickstart%2F%3Fpage%3DActiveControls.Home&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-92"><span class="mw-cite-backlink"><b><a href="#cite_ref-92">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://docs.silverstripe.org/en/4/getting_started/server_requirements/">"Server Requirements"</a>. <i>docs.silverstripe.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=docs.silverstripe.org&rft.atitle=Server+Requirements&rft_id=https%3A%2F%2Fdocs.silverstripe.org%2Fen%2F4%2Fgetting_started%2Fserver_requirements%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-93"><span class="mw-cite-backlink"><b><a href="#cite_ref-93">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/unix-world/Smart.Framework">"Smart.Framework: a practical, modern and high performance PHP / JavaScript Framework for Web featuring Middlewares + MVC"</a>. <i><a href="/wiki/GitHub" title="GitHub">GitHub</a></i>. 2022-01-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-04-23</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=GitHub&rft.atitle=Smart.Framework%3A+a+practical%2C+modern+and+high+performance+PHP+%2F+JavaScript+Framework+for+Web+featuring+Middlewares+%2B+MVC&rft.date=2022-01-07&rft_id=https%3A%2F%2Fgithub.com%2Funix-world%2FSmart.Framework&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-94"><span class="mw-cite-backlink"><b><a href="#cite_ref-94">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://symfony.com/doc/current/setup.html">"Installing & Setting up the Symfony Framework (Symfony Docs)"</a>. <i>symfony.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2022-09-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=symfony.com&rft.atitle=Installing+%26+Setting+up+the+Symfony+Framework+%28Symfony+Docs%29&rft_id=https%3A%2F%2Fsymfony.com%2Fdoc%2Fcurrent%2Fsetup.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-95"><span class="mw-cite-backlink"><b><a href="#cite_ref-95">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://get.typo3.org/">"Download TYPO3 - get.typo3.org"</a>. <i>get.typo3.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=get.typo3.org&rft.atitle=Download+TYPO3+-+get.typo3.org&rft_id=https%3A%2F%2Fget.typo3.org%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-96"><span class="mw-cite-backlink"><b><a href="#cite_ref-96">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.yiiframework.com/doc/guide/2.0/en/start-installation">"Getting Started: Installing Yii"</a>. <i>Yii Framework</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-02</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=Yii+Framework&rft.atitle=Getting+Started%3A+Installing+Yii&rft_id=https%3A%2F%2Fwww.yiiframework.com%2Fdoc%2Fguide%2F2.0%2Fen%2Fstart-installation&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-97"><span class="mw-cite-backlink"><b><a href="#cite_ref-97">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.yiiframework.com/doc/blog/1.1/en/prototype.scaffold">"Initial Prototyping: Scaffolding | Building a Blog System Using Yii | Yii PHP Framework"</a>. Yiiframework.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Initial+Prototyping%3A+Scaffolding+%26%23124%3B+Building+a+Blog+System+Using+Yii+%26%23124%3B+Yii+PHP+Framework&rft.pub=Yiiframework.com&rft_id=http%3A%2F%2Fwww.yiiframework.com%2Fdoc%2Fblog%2F1.1%2Fen%2Fprototype.scaffold&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-98"><span class="mw-cite-backlink"><b><a href="#cite_ref-98">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://web2py.com/init/default/what">"invalid function (default/images)"</a>. Web2py.com<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-03-21</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=invalid+function+%28default%2Fimages%29&rft.pub=Web2py.com&rft_id=http%3A%2F%2Fweb2py.com%2Finit%2Fdefault%2Fwhat&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-99"><span class="mw-cite-backlink"><b><a href="#cite_ref-99">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090212104408/http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html">"URLRequest - Adobe ActionScript® 3 (AS3 ) API Reference"</a>. Livedocs.adobe.com. 2013-07-01. Archived from <a rel="nofollow" class="external text" href="http://livedocs.adobe.com/flex/3/langref/flash/net/URLRequest.html">the original</a> on 2009-02-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=URLRequest+-+Adobe+ActionScript%C2%AE+3+%28AS3+%29+API+Reference&rft.pub=Livedocs.adobe.com&rft.date=2013-07-01&rft_id=http%3A%2F%2Flivedocs.adobe.com%2Fflex%2F3%2Flangref%2Fflash%2Fnet%2FURLRequest.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> <li id="cite_note-100"><span class="mw-cite-backlink"><b><a href="#cite_ref-100">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20131105232749/http://www.scalatest.org/user_guide/using_selenium">"ScalaTest"</a>. ScalaTest. Archived from <a rel="nofollow" class="external text" href="http://www.scalatest.org/user_guide/using_selenium">the original</a> on 2013-11-05<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-08-18</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=ScalaTest&rft.pub=ScalaTest&rft_id=http%3A%2F%2Fwww.scalatest.org%2Fuser_guide%2Fusing_selenium&rfr_id=info%3Asid%2Fen.wikipedia.org%3AComparison+of+server-side+web+frameworks" class="Z3988"></span></span> </li> </ol></div></div> <!-- NewPP limit report Parsed by mw‐api‐int.codfw.migration‐76c97764f8‐92zlw Cached time: 20250306105309 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 4.413 seconds Real time usage: 4.691 seconds Preprocessor visited node count: 11083/1000000 Post‐expand include size: 264675/2097152 bytes Template argument size: 11787/2097152 bytes Highest expansion depth: 9/100 Expensive parser function count: 61/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 346041/5000000 bytes Lua time usage: 3.772/10.000 seconds Lua memory usage: 48198866/52428800 bytes Lua Profile: MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback::getEntity 2180 ms 57.1% recursiveClone <mwInit.lua:45> 680 ms 17.8% ? 180 ms 4.7% MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback::callParserFunction 180 ms 4.7% (for generator) 120 ms 3.1% dataWrapper <mw.lua:672> 60 ms 1.6% MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback::getExpensiveData 40 ms 1.0% select_one <Module:Citation/CS1/Utilities:429> 40 ms 1.0% date 40 ms 1.0% MediaWiki\Extension\Scribunto\Engines\LuaSandbox\LuaSandboxCallback::addStatementUsage 20 ms 0.5% [others] 280 ms 7.3% Number of Wikibase entities loaded: 42/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 4387.284 1 -total 81.76% 3587.217 126 Template:Wikidata 9.14% 401.133 42 Template:Time_ago 6.05% 265.377 1 Template:Reflist 5.86% 256.998 2 Template:Laravel_version 4.61% 202.393 58 Template:Cite_web 2.56% 112.429 1 Template:Short_description 2.18% 95.470 1 Template:ProgLangCompare 2.08% 91.354 1 Template:Sidebar 2.06% 90.345 2 Template:Yesod_(web_framework)_version --> <!-- Saved in parser cache with key enwiki:pcache:9334615:|#|:idhash:canonical and timestamp 20250306105309 and revision id 1277277777. Rendering was triggered because: api-parse --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&type=1x1&usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Comparison_of_server-side_web_frameworks&oldid=1277277777">https://en.wikipedia.org/w/index.php?title=Comparison_of_server-side_web_frameworks&oldid=1277277777</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Web_frameworks" title="Category:Web frameworks">Web frameworks</a></li><li><a href="/wiki/Category:Network_software_comparisons" title="Category:Network software comparisons">Network software comparisons</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:CS1_errors:_missing_title" title="Category:CS1 errors: missing title">CS1 errors: missing title</a></li><li><a href="/wiki/Category:CS1_errors:_bare_URL" title="Category:CS1 errors: bare URL">CS1 errors: bare URL</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 23 February 2025, at 18:49<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Comparison_of_server-side_web_frameworks&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/static/images/footer/wikimedia-button.svg" width="84" height="29"><img src="/static/images/footer/wikimedia.svg" width="25" height="25" alt="Wikimedia Foundation" lang="en" loading="lazy"></picture></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" lang="en" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Comparison of server-side web frameworks</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>3 languages</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Add topic</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="mw-portlet mw-portlet-dock-bottom emptyPortlet" id="p-dock-bottom"> <ul> </ul> </div> <script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.next-5464f7789b-r6mdg","wgBackendResponseTime":254,"wgPageParseReport":{"limitreport":{"cputime":"4.413","walltime":"4.691","ppvisitednodes":{"value":11083,"limit":1000000},"postexpandincludesize":{"value":264675,"limit":2097152},"templateargumentsize":{"value":11787,"limit":2097152},"expansiondepth":{"value":9,"limit":100},"expensivefunctioncount":{"value":61,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":346041,"limit":5000000},"entityaccesscount":{"value":42,"limit":400},"timingprofile":["100.00% 4387.284 1 -total"," 81.76% 3587.217 126 Template:Wikidata"," 9.14% 401.133 42 Template:Time_ago"," 6.05% 265.377 1 Template:Reflist"," 5.86% 256.998 2 Template:Laravel_version"," 4.61% 202.393 58 Template:Cite_web"," 2.56% 112.429 1 Template:Short_description"," 2.18% 95.470 1 Template:ProgLangCompare"," 2.08% 91.354 1 Template:Sidebar"," 2.06% 90.345 2 Template:Yesod_(web_framework)_version"]},"scribunto":{"limitreport-timeusage":{"value":"3.772","limit":"10.000"},"limitreport-memusage":{"value":48198866,"limit":52428800},"limitreport-profile":[["MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxCallback::getEntity","2180","57.1"],["recursiveClone \u003CmwInit.lua:45\u003E","680","17.8"],["?","180","4.7"],["MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxCallback::callParserFunction","180","4.7"],["(for generator)","120","3.1"],["dataWrapper \u003Cmw.lua:672\u003E","60","1.6"],["MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxCallback::getExpensiveData","40","1.0"],["select_one \u003CModule:Citation/CS1/Utilities:429\u003E","40","1.0"],["date","40","1.0"],["MediaWiki\\Extension\\Scribunto\\Engines\\LuaSandbox\\LuaSandboxCallback::addStatementUsage","20","0.5"],["[others]","280","7.3"]]},"cachereport":{"origin":"mw-api-int.codfw.migration-76c97764f8-92zlw","timestamp":"20250306105309","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Comparison of server-side web frameworks","url":"https:\/\/en.wikipedia.org\/wiki\/Comparison_of_server-side_web_frameworks","sameAs":"http:\/\/www.wikidata.org\/entity\/Q441675","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q441675","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2007-02-05T23:13:52Z","dateModified":"2025-02-23T18:49:31Z","headline":"Wikimedia list article"}</script> </body> </html>