possible open source frameworks, hosted or mirrored on Github (173 found, 105 selected) a. At least several active contributors b. Recent activity 2. GitHub statistics collection and placement with fedir/ghstat 3. github/linguist for language detection (*) Frameworks listed in Z-A order, based on popularity / activity / maintenance metric coefficient Open source Web frameworks comparison and ratings - Fedir RYKHTIK - June 24, 2018 - TYPO3 Developer Days 2018, Düsseldorf, Germany
(WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including: ◦ web services, ◦ web resources, ◦ web APIs. • Web frameworks provide a standard way to build and deploy web applications. • Web frameworks aim to automate the overhead associated with common activities performed in web development. • Although they often target development of dynamic websites, they are also applicable to static websites.
with predefined interfaces ◦ Web components oriented ◦ Generators • Server side ◦ Lowlevel / Fullstack ◦ Push / Pull Open source Web frameworks comparison and ratings - Fedir RYKHTIK - June 24, 2018 - TYPO3 Developer Days 2018, Düsseldorf, Germany
2015/04 License: MIT Language: Haskell All languages: Haskell(99.97),HTML(0.03) Total code size: 74,271 Commits/day: 0.1762 Stars: 49 Forks: 5 Contributors: 5 Returning contributors (more than 4 weeks): 2 Open issues / Closed issues: 6/5 URL: https://github.com/transient-haskell/axiom Client-side and server-side web framework over Transient and GHCJS (Haskell to JavaScript compiler) Example : main= simpleWebApp 8080 app app= do local . render $ rawHtml $ p "In this example you enter your name and the server will salute you" name <- local . render $ inputString (Just "enter your name") `fire` OnKeyUp <++ br -- new line r <- atRemote $ lliftIO $ print (name ++ " calling") >> return ("Hi " ++ name) local . render . rawHtml $ do p " returned" h2 r • https://github.com/transient-haskell/transient-examples/ blob/master/webapp.hs • https://github.com/transient-haskell/transient/wiki/Transi ent-tutorial#web-programming-axiom
Apache-2.0 Language: Lua All languages: Lua(91.18),Python(7.68),Shell(1.14) Total code size: 76,989 Commits/day: 0.0687 Stars: 208 Forks: 66 Contributors: 6 Returning contributors (more than 4 weeks): 3 Open issues / Closed issues: 0/3 URL: https://github.com/appwilldev/moochine A (very) simple and lightweight web framework based on ngx-openresty. • Routing • Configs • Simple templating • Logging • Debugging Great, when You are programming in Lua (performance) and need some Web. Demo app: https://github.com/appwilldev/moochine-demo
Apache 2 OSS License Language: Kotlin All languages: Kotlin(99.71),HTML(0.27),CSS(0.02) Total code size: 178,859 Commits/day: 0.2160 Stars: 488 Forks: 64 Contributors: 18 Returning contributors (more than 4 weeks): 2 Open issues / Closed issues: 23/28 URL: https://github.com/wasabifx/wasabi An HTTP framework that allows you to easily create back-end services for a web application or any other type of application that might require an HTTP API (not REST, not MVC) package org.wasabifx.wasabi.samples import org.wasabifx.wasabi.app.AppConfiguration import org.wasabifx.wasabi.app.AppServer fun main(args: Array<String>) { var server = AppServer() server.get("/", { val log = Log() log.info("URI requested is ${request.uri}") next() }, { response.send("Hello World!", "application/json") } ) server.start() } More samples: https://github.com/wasabifx/wasabi/tree/master/wasabi-sample s/src/main/kotlin/org/wasabifx/wasabi/samples
MIT Language: Erlang All languages: Erlang(50.50),Shell(14.86),Makefile(14.63),Perl(10.64), Emacs Lisp(4.53),HTML(1.94),CSS(1.50),Batchfile(0.78),Vim script(0.63) Total code size: 112,183 Commits/day: 0.2240 Stars: 837 Forks: 151 Contributors: 29 Returning contributors (more than 4 weeks): 3 Open issues / Closed issues: 8/50 URL: https://github.com/nitrogen/nitrogen Nitrogen is an Erlang-based web framework that allows you to develop scaleable, Ajax-rich web applications using a pure Erlang technology stack. • 120+ built in Elements, Actions, and Validators • Easily extendable with your own elements • Plugin System • Built-in AJAX, Comet, and Websockets • jQuery Mobile • REST Handler • Runs on any Erlang Webserver with SimpleBridge body() -> #panel { style="margin: 50px;", body=[ #h1 { text="My Page" }, #label { text="Enter Your Name:" }, #textbox { }, #button { text="Submit", actions=[ #event{type=click, actions=#alert { text="Hello" } ]} ]}. http://nitrogenproject.com/doc/tutorial.html http://nitrogenproject.com/
Apache-2.0/MIT Language: Rust All languages: Rust(98.18),Shell(1.82) Total code size: 218,969 Commits/day: 0.2796 Stars: 846 Forks: 50 Contributors: 13 Returning contributors (more than 4 weeks): 1 Open issues / Closed issues: 7/59 URL: https://github.com/Ogeon/rustful A light HTTP framework for Rust, with REST-like features. The main purpose of Rustful is to create a simple, modular and non-intrusive foundation for HTTP applications. It has a mainly stateless structure, which naturally allows it to run both as one single server and as multiple instances in a cluster. • Generic response handlers. Use a function or implement the Handler trait. • Handy macros reduces the risk for typos and makes life easier. • Variables in routes, that can capture parts of the requested path. • Pluggable request and response filtering. #[macro_use] extern crate log; extern crate env_logger; extern crate rustful; use std::error::Error; use rustful::{Server, Context, Response}; fn main() { env_logger::init(); println!("Visit http://localhost:8080 to try this example."); let server_result = Server { host: 8080.into(), ..Server::new(|_: Context, res: Response| res.send("Hello!")) }.run(); match server_result { Ok(_server) => {}, Err(e) => error!("could not start server: {}", e.description()) } } Samples: https://github.com/Ogeon/rustful/tree/master/examples
MIT Language: Crystal All languages: Crystal(99.98),HTML(0.02) Total code size: 76,817 Commits/day: 0.2469 Stars: 604 Forks: 42 Contributors: 20 Returning contributors (more than 4 weeks): 1 Open issues / Closed issues: 12/24 URL: https://github.com/amethyst-framework/amethys t Amethyst is a web framework written in the Crystal language. The goals of Amethyst are to be extremely fast and to provide agility in application development, much like Rails. Some features • class-based controllers with method-based actions • views for actions (*.ecr) • filters for action • middleware support • simple REST routing • default routes for controller • path, GET and POST params inside actions • basic cookies support • static files serving • http logger and timer • simple environments support • simple session support Sample
Clojure's Ring. Placement: 98 Type: server-side Created at: 2016/11 License: MIT Language: Kotlin All languages: Kotlin(100.00) Total code size: 189,487 Commits/day: 0.3891 Stars: 34 Forks: 2 Contributors: 2 Returning contributors (more than 4 weeks): 1 Open issues / Closed issues: 12/11 URL: https://github.com/danneu/kog A simple, experimental Kotlin web framework inspired by Clojure's Ring. A kog application is a function that takes a Request and returns a Response. Built on top of Jetty. Some features • Powerful type-Safe Routing • Static File Serving • Multipart File Uploads • Basic Auth • Compression / Gzip • HTML Templating • WebSockets • Caching • Logger • JSON • Cookies • Multilanguage Code sample
Type: server-side and client-side (LuaJS VMs) Created at: 2014/01 License: MIT Language: Lua All languages: Lua(86.25),JavaScript(12.69),CSS(1.07) Total code size: 155,740 Commits/day: 0.3148 Stars: 794 Forks: 122 Contributors: 25 Returning contributors (more than 4 weeks): 3 Open issues / Closed issues: 41/49 URL: https://github.com/sailorproject/sailor Features • MVC structure • Routing • Basic Object-relational mapping • Validation • Transactions • App comes already shipped with Bootstrap • Include, redirect • Sessions, cookies • Login module • Form generation • Friendly urls • Inspect function for better debugging => similar to a var dump • Custom 404 pages • Relations • Model generation (reading from DB) • CRUD generation (reading from model) • Theme and layouts • Integration with Busted for unit and functional tests for your app Simple controller sample: http://sailorproject.org/
93 Type: server-side Created at: 2012/12 License: Apache 2.0 Language: Kotlin All languages: Kotlin(62.42),CSS(35.21),JavaScript(2.18),Java(0.20) Total code size: 411,184 Commits/day: 0.2926 Stars: 482 Forks: 74 Contributors: 17 Returning contributors (more than 4 weeks): 6 Open issues / Closed issues: 0/0 URL: https://github.com/TinyMission/kara Developed by JetBrains (authors of Kotlin). Maintained fork: https://github.com/JetBrains/kara The project is rather dead, than alive, but You could drop an eye on it, if You are working with other Kotlin. Demo app: https://github.com/JetBrains/kara/tree/maste r/samples/KaraDemo/src
in Scala. Placement: 92 Type: server-side Created at: 2013/06 License: Apache-2.0 Language: Scala All languages: Scala(78.38),Java(18.36),HTML(2.27),CSS(0.99) Total code size: 40,689 Commits/day: 0.1033 Stars: 227 Forks: 36 Contributors: 16 Returning contributors (more than 4 weeks): 6 Open issues / Closed issues: 14/15 URL: https://github.com/mesosphere/chaos Building Blocks There are great JVM libraries for every part of a REST stack. • Jersey for REST via annotations • Guava for lifecycle management and various utilities • Jetty as the web server and servlet container • Jackson for JSON support • Coda Hale's Metrics for JVM and application metrics Chaos just glues these together. Demo app: https://github.com/mesosphere/chaos/tree/master/c haos-examples/src/main/scala/mesosphere/chaos/e xamples
Language: Python All languages: Python(97.11),JavaScript(2.89) Total code size: 130,703 Commits/day: 0.3575 Stars: 5140 Forks: 497 Contributors: 17 Returning contributors (more than 4 weeks): 3 Open issues / Closed issues: 56/154 URL: https://github.com/plotly/dash Dash is a Python framework for building interactive, reactive analytical web applications. No JavaScript required.
The D Programming Language using vibe.d Placement: 90 Type: server-side Created at: 2017/10 License: MIT Language: D All languages: D(100.00) Total code size: 463,503 Commits/day: 0.6992 Stars: 128 Forks: 9 Contributors: 2 Returning contributors (more than 4 weeks): 1 Open issues / Closed issues: 1/5 URL: https://github.com/DiamondMVC/Diamond Diamond can be used to write websites, webapis or as stand-alone as a template parser. Controller sample: module controllers.homecontroller; import diamond.controllers; final class HomeController(TView) : WebController!TView { this(TView view) { super(view); } /// / || /home @HttpDefault Status defaultAction() { view.model = new Home("World!"); return Status.success; } /// /home/setname/{name} @HttpAction(HttpPost) Status setName() { auto name = this.getByIndex!string(0); view.model = new Home(name); return Status.success; } }
MIT Language: Erlang All languages: Erlang(81.51),HTML(12.18),CSS(3.24),Elixir(1.22),Makefi le(0.94),Shell(0.62),Batchfile(0.28) Total code size: 583,310 Commits/day: 0.2711 Stars: 1725 Forks: 307 Contributors: 63 Returning contributors (more than 4 weeks): 9 Open issues / Closed issues: 73/247 URL: https://github.com/ChicagoBoss/ChicagoBoss Server framework inspired by Rails and written in Erlang. It offers all the conveniences of modern web development, including Comet. Features • Easy server–side templates • Easy JSON generation • Django & Jade template support • 100% asynchronous I/O • WebSocket & long-poll support • Language–integrated query syntax • Fast, in-memory functional tests • Support for Erlang and Elixir code • Low RAM and CPU usage • Cluster–wide, channel–based message queue • Supports SQL and NoSQL databases • Fast garbage collection • Built-in email server • Hot code upgrades http://chicagoboss.org/ https://github.com/ChicagoBoss/ChicagoBoss/wiki
create dashboards, written in Elixir / React. Placement: 87 Type: client-side Created at: 2016/05 License: MIT Language: Elixir All languages: Elixir(78.73),JavaScript(10.65),CSS(6.19),HTML(4.43) Total code size: 158,304 Commits/day: 0.3882 Stars: 698 Forks: 42 Contributors: 15 Returning contributors (more than 4 weeks): 2 Open issues / Closed issues: 13/54 URL: https://github.com/kittoframework/kitto Features • Jobs are supervised processes running concurrently • Widgets are coded in the popular React library • Uses a modern asset tool-chain, Webpack • Allows streaming SSE to numerous clients concurrently with low memory/CPU footprint • Easy to deploy using the provided Docker images, Heroku (guide) or Distillery (guide) • Can serve assets in production • Keeps stats about defined jobs and comes with a dashboard to monitor them (demo) • Can apply exponential back-offs to failing jobs • Reloads code upon change in development
server-side Created at: 2010/04 License: MIT Language: Ruby All languages: Ruby(99.38),HTML(0.53),Makefile(0.09) Total code size: 46,530 Commits/day: 0.0886 Stars: 1291 Forks: 179 Contributors: 25 Returning contributors (more than 4 weeks): 3 Open issues / Closed issues: 3/36 URL: https://github.com/soveran/cuba Sample require "cuba" Cuba.define do on "hello" do res.write "hello, world" end on get, "articles/:id" do |id| article = Article[id] on "comments/:id" do |id comment = article.comments[id] end end end run Cuba
http_request *req) { http_response(req, 200, "Hello world", 11); return (KORE_RESULT_OK); } 35 jorisvink/kore - An easy to use, scalable and secure web application framework for writing web APIs in C. Placement: 82 Type: server-side Created at: 2013/06 License: [Custom license] Language: C All languages: C(97.56),Roff(1.25),Makefile(1.19) Total code size: 404,248 Commits/day: 0.6281 Stars: 2770 Forks: 256 Contributors: 31 Returning contributors (more than 4 weeks): 2 Open issues / Closed issues: 1/158 URL: https://github.com/jorisvink/kore • Supports SNI & HTTP/1.1 • Websocket support • Lightweight background tasks • Built-in parameter validation • Only HTTPS connections allowed • Built-in asynchronous PostgreSQL support • Private keys isolated in separate process (RSA and ECDSA) • Default sane TLS ciphersuites (PFS in all major browsers) • Modules can be reloaded on-the-fly, even while serving content • Event driven (epoll/kqueue) architecture with per CPU core workers • Build your web application as a precompiled dynamic library or single binary
Placement: 81 Type: Created at: 2016/06 License: MIT Language: Go All languages: Go(97.99),HTML(1.77),CSS(0.25) Total code size: 285,431 Commits/day: 0.4727 Stars: 300 Forks: 12 Contributors: 3 Returning contributors (more than 4 weeks): 1 Open issues / Closed issues: 8/133 URL: https://github.com/go-aah/aah aah is pronounced as ah (IPA: /ˈɑː/); it means delight, joyful pleasure. aah framework brings aah into web application development and its maintenance. • Routing • Multi-Environment Configuration • Parameters Auto Parse and Bind • Security OOTB • SPA and Mobile app support • Event handling and dispatching • Logging • i18n Internationalization • Error Handling • Static File Delivery • New project powerful CLI generator • Docker and systemd files generation
MIT Language: Elixir All languages: Elixir(99.86),HTML(0.14) Total code size: 67,241 Commits/day: 0.1337 Stars: 361 Forks: 29 Contributors: 13 Returning contributors (more than 4 weeks): 2 Open issues / Closed issues: 8/52 URL: https://github.com/sugar-framework/sugar Simple modular MVC web framework for Elixir Goals • Speed. Sugar shouldn't be slow and neither should your project. • Ease. Sugar should be simple because simple is easy to learn and use. • Effective. Sugar should aid development. You have better things to which to devote your time. router.ex defmodule Simple.Router do use Sugar.Router alias Simple.Controllers.Hello plug Sugar.Plugs.HotCodeReload get "/pages/:id", Hello, :show get "/pages" when true, Hello, :show any "/pages/:id" when id == 1, Hello, :show end controller.ex defmodule Simple.Controllers.Hello do use Sugar.Controller def show(conn, args) do conn |> render(args) end end show.html.eex showing page <%= @id %>
for Web Application Placement: 79 Type: server-side Created at: 2012/12 License: BSD-3-Clause Language: C++ All languages: C++(71.68),JavaScript(24.50), QMake(1.38),C(0.72),Batchfile(0.66),HTML(0.47),CMak e(0.42),Shell(0.16) Total code size: 2,012,515 Commits/day: 0.7771 Stars: 494 Forks: 117 Contributors: 16 Returning contributors (more than 4 weeks): 2 Open issues / Closed issues: 14/112 URL: https://github.com/treefrogframework/treefrog-fr amework Some features • ORM with multiple DB backed support • Template system • WebSocket - Full-duplex communications channels • Generator - Generates scaffolds and Makefiles automatically • Cross-platform - Windows, macOS, Linux, etc. Write once, compile anywhere. • Ajax support - JSON, XML and Plain text available • Less resource - Stable operation even on Raspberry Pi More details http://www.treefrogframework.org/en/user-guide/tutorial/ https://github.com/treefrogframework/chatapp
Placement: 78 Type: server-side Created at: 2014/06 License: MIT Language: Rust All languages: Rust(100.00) Total code size: 61,619 Commits/day: 0.4244 Stars: 4909 Forks: 356 Contributors: 77 Returning contributors (more than 4 weeks): 4 Open issues / Closed issues: 63/179 URL: https://github.com/iron/iron Iron aims to fill a void in the Rust web stack - a high level framework that is extensible and makes organizing complex server code easy. • Routing • Static File Serving • Logging • JSON, URL, & Form Data parameters parsing • Shared Memory • Sessions Sample extern crate iron; use std::time::Duration; use iron::prelude::*; use iron::status; use iron::Timeouts; fn main() { let mut iron = Iron::new(|_: &mut Request| { Ok(Response::with((status::Ok, "Hello world!"))) }); iron.threads = 8; iron.timeouts = Timeouts { keep_alive: Some(Duration::from_secs(10)), read: Some(Duration::from_secs(10)), write: Some(Duration::from_secs(10)) }; iron.http("localhost:3000").unwrap(); }
and 7 Placement: 75 Type: server-side Created at: 2004 License: [Custom license] Language: PHP All languages: PHP(93.49),JavaScript(5.18),HTML(0.62),Smarty(0.33), CSS(0.33),Batchfile(0.03),XSLT(0.01) Total code size: 4,551,028 Commits/day: 0.3487 Stars: 143 Forks: 61 Contributors: 13 Returning contributors (more than 4 weeks): 5 Open issues / Closed issues: 35/596 URL: https://github.com/pradosoft/prado Classic PHP framework Hello World sample from https://github.com/pradosoft/prado-demos <?php $basePath=dirname(__FILE__); $assetsPath=$basePath.'/assets'; $runtimePath=$basePath.'/protected/runtime'; if(!is_writable($assetsPath)) die("Please make sure that the directory $assetsPath is writable by Web server process."); if(!is_writable($runtimePath)) die("Please make sure that the directory $runtimePath is writable by Web server process."); require '../vendor/autoload.php'; $application = new \Prado\TApplication; $application->run(); <?php class Home extends TPage { public function buttonClicked($sender,$param) { $sender->Text='Hello world!'; } } <com:TForm> <com:TButton Text="Click me" OnClick="buttonClicked" /> </com:TForm>
web applications. Placement: 73 Type: server-side, client-side Created at: 2016/02 License: Apache-2.0 Language: Scala All languages: Scala(99.99),HTML(0.01) Total code size: 2,502,212 Commits/day: 0.4833 Stars: 295 Forks: 18 Contributors: 8 Returning contributors (more than 4 weeks): 3 Open issues / Closed issues: 9/30 URL: https://github.com/UdashFramework/udash-core Features • Reactive Data Bindings - Automatically synchronise user interface with your data model. • Type-safe RPC & REST - A client↔server communication based on typed interfaces. Bidirectional RPC via WebSockets out of the box. • User Interface Components - Twitter Bootstrap components enriched by Udash features. • Routing - Udash serves a frontend routing mechanism. Just define matching from URL to view. • i18n - Translations served by the backend or compiled into JavaScript. • Generator - Generate a customized application, compile and try it out in 5 minutes. • Backend independent - Udash provides a complete support for your web application and the communication with the server but does not influence your backend implementation. import io.udash._ val name = Property("World") div( div( label("Name: "), TextInput.debounced(name, placeholder := "Type your name...") ), h3("Hello, ", bind(name), "!") ) https://scalafiddle.io/sf/z8zY6cP/0
72 Type: server-side Created at: 2014/02 License: Artistic-2.0 Language: Common Lisp All languages: Common Lisp(100.00) Total code size: 224,336 Commits/day: 1.1049 Stars: 90 Forks: 8 Contributors: 5 Returning contributors (more than 4 weeks): 1 Open issues / Closed issues: 2/20 URL: https://github.com/Shirakumo/radiance Some features • Routing • Modules • Hooks • Caching • DB support • Logger • Mail • Sessions (define-page example "/example" () (cl-who:with-html-output-to-string (o) (cl-who:htm (:html (:head (:title "Example Page")) (:body (:header (:h1 "Couldn't Be Simpler.")) (:main (:p "Trust me on this one."))))))) https://github.com/Shirakumo/radiance-tutoria l
apps Placement: 69 Type: server-side Created at: 2015/10 License: Apache-2.0 Language: Ruby All languages: Ruby(99.98),Shell(0.01),HTML(0.01) Total code size: 204,431 Commits/day: 0.5240 Stars: 343 Forks: 12 Contributors: 7 Returning contributors (more than 4 weeks): 1 Open issues / Closed issues: 3/16 URL: https://github.com/rack-app/rack-app require 'rack/app' class App < Rack::App apply_extensions :front_end mount SomeAppClass headers 'Access-Control-Allow-Origin' => '*', 'Access-Control-Expose-Headers' => 'X-My-Custom-Header, X-Another-Custom-Header' serializer do |object| object.to_s end desc 'some hello endpoint' validate_params do required 'words', :class => Array, :of => String, :desc => 'some word', :example => ['pug'] optional 'word', :class => String, :desc => 'one word', :example => 'pug' end get '/hello' do puts(validate_params['words']) return 'Hello World!' end namespace '/users' do desc 'some restful endpoint' get '/:user_id' do response.status = 201 params['user_id'] #=> restful parameter :user_id say #=> "hello world!" end end desc 'some endpoint that has error and will be rescued' get '/make_error' do raise(StandardError,'error block rescued') end def say "hello #{params['user_id']}!" end error StandardError, NoMethodError do |ex| {:error=>ex.message} end root '/hello' get '/stream' do stream do |out| out << 'data row' end end end
Apache-2.0 Language: Lua All languages: Lua(97.35),Makefile(1.25),Batchfile(0.79),Shell(0.62) Total code size: 549,146 Commits/day: 0.4921 Stars: 403 Forks: 72 Contributors: 29 Returning contributors (more than 4 weeks): 5 Open issues / Closed issues: 20/162 URL: https://github.com/kernelsauce/turbo Turbo is a framework built for LuaJIT 2 (Just-In-Time Compiler) to simplify the task of building fast and scalable network applications. It uses a event-driven, non-blocking, no thread design to deliver excellent performance and minimal footprint to high-load applications while also providing excellent support for embedded uses. local turbo = require("turbo") local HelloNameHandler = class("HelloNameHandler", turbo.web.RequestHandler) function HelloNameHandler:get() local name = self:get_argument("name", "Santa Claus") self:write("Hello " .. name .. "!") end function HelloNameHandler:post() local name = self:get_argument("name", "Easter Bunny") self:write("Hello " .. name .. "!") end local app = turbo.web.Application:new({ {"/hello", HelloNameHandler} }) app:listen(8888) turbo.ioloop.instance():start()
web-applications Placement: 67 Type: server-side Created at: 2009/06 License: MIT Language: Python All languages: Python(98.55),Shell(0.69),Makefile(0.57),Smarty(0.18) Total code size: 315,005 Commits/day: 0.4190 Stars: 5489 Forks: 1121 Contributors: 153 Returning contributors (more than 4 weeks): 8 Open issues / Closed issues: 258/423 URL: https://github.com/bottlepy/bottle Features • Routing • Templating (mako, jinja2, cheetah ...) • Access to form data, file uploads, cookies, headers and other HTTP-related metadata • Built-in HTTP development server and support for paste, fapws3, bjoern, Google App Engine, cherrypy or any other WSGI capable HTTP server Sample from bottle import route, run, template @route('/hello/<name>') def index(name): return template('<b>Hello {{name}}</b>!', name=name) run(host='localhost', port=8080) http://bottlepy.org/docs/dev/tutorial.html
Phoenix and Elm Placement: 66 Type: server-side Created at: 2017/01 License: MIT Language: Crystal All languages: Crystal(99.83),HTML(0.17) Total code size: 261,955 Commits/day: 0.7865 Stars: 860 Forks: 50 Contributors: 28 Returning contributors (more than 4 weeks): 3 Open issues / Closed issues: 65/244 URL: https://github.com/luckyframework/lucky "Catch bugs early, forget about most performance issues, and spend more time on code instead of debugging and writing tests." • Routing • Forms • Validators • Templating • Advanced DB operations • Authentication • CLI tasks • Sessions
Created at: 2010/10 License: [Custom license] Language: Ruby All languages: Ruby(71.09),HTML(22.57),JavaScript(6.32),CSS(0.01) Total code size: 1,682,178 Commits/day: 0.7795 Stars: 786 Forks: 69 Contributors: 19 Returning contributors (more than 4 weeks): 8 Open issues / Closed issues: 18/140 URL: https://github.com/pakyow/pakyow Pakyow lets you quickly build a prototype writing only HTML and CSS. Pakyow promotes a view-first development process. Put simply, view-first development enables the presentation layer of a website or web app to be built and maintained separately from the logic that renders it. Features • Routing • Sessions • Database support • Forms • Emails notifications • Session & Cookies • Logging
on top of a microframework core with support for MongoDB, Pluggable Applications and autogenerated Admin Placement: 63 Type: server-side Created at: 2011/02 License: [Custom license] Language: Python All languages: Python(98.53),HTML(1.35),Makefile(0.13) Total code size: 865,318 Commits/day: 0.3338 Stars: 246 Forks: 58 Contributors: 26 Returning contributors (more than 4 weeks): 5 Open issues / Closed issues: 11/63 URL: https://github.com/TurboGears/tg2 Components • SQLAlchemy (Model) - defines the table structures of the user's database and how to link them to Python objects the user's controller can interact with. • Ming (Model) - provides the data access layer for MongoDB, much like SQLAlchemy defines how to link MongoDB collections to Python objects the user's controller can interact with. • Genshi (View) - defines templates for the HTML or XHTML the user will generate. • Repoze - Repoze.who is used to handle security (identification and authentication). Users can define authorization rules based on predicates attached to controllers. • ToscaWidgets - is the primary widget library for creating forms and complex GUIs. Tosca by default will generate simple HTML forms, but can also be used as a middleware to connect to more advanced JavaScript widgets and toolkits. • Gearbox - is the toolkit used by TurboGears to manage projects, create new ones and serve TurboGears applications. More information • http://turbogears.readthedocs.io/en/latest/turbogears/mi nimal/index.html • http://turbogears.readthedocs.io/en/latest/turbogears/wi ki20.html • https://en.wikipedia.org/wiki/TurboGears
runs on both server and client Placement: 61 Type: server-side, client-side Created at: 2014/01 License: MIT Language: Ruby All languages: Ruby(91.63),HTML(6.91),JavaScript(1.37),CSS(0.09) Total code size: 832,461 Commits/day: 1.0471 Stars: 3313 Forks: 216 Contributors: 61 Returning contributors (more than 4 weeks): 4 Open issues / Closed issues: 76/122 URL: https://github.com/voltrb/volt Volt is a Ruby web framework where your Ruby code runs on both the server and the client (via Opal, JavaScript source-to-source compiler). Instead of syncing data between the client and server via HTTP, Volt uses a persistent connection between the client and server. When data is updated on one client, it is updated in the database and any other listening clients (with almost no setup code needed). Demo apps • https://github.com/voltrb/blog5 • https://github.com/voltrb/todomvc (*)Project is not updated since a moment.
framework Placement: 57 Type: server-side Created at: 2010/04 License: [Custom license] Language: Ruby All languages: Ruby(94.03),CSS(2.78),Nix(1.99),HTML(1.14),Mathema tica(0.03),Liquid(0.03) Total code size: 411,419 Commits/day: 1.0483 Stars: 343 Forks: 34 Contributors: 49 Returning contributors (more than 4 weeks): 9 Open issues / Closed issues: 15/41 URL: https://github.com/Ramaze/ramaze Ramaze is a very simple and straight-forward web-framework. The philosophy of it could be expressed in a mix of KISS and POLS, trying to make simple things simple and complex things possible. • Routes • Controllers • Models • Views • Helpers • Middlewares • Sessions • Caching Data Examples https://github.com/Ramaze/ramaze/tree/mas ter/examples
MIT Language: JavaScript All languages: JavaScript(99.99),HTML(0.01) Total code size: 1,342,436 Commits/day: 2.4969 Stars: 19139 Forks: 1810 Contributors: 210 Returning contributors (more than 4 weeks): 16 Open issues / Closed issues: 118/3543 URL: https://github.com/balderdashy/sails Sails.js (or Sails) is a Model-View-Controller (MVC) web application framework. It is designed to make it easy to build custom, enterprise-grade Node.js web applications and APIs. Emulating the MVC architecture of other frameworks, like Ruby on Rails, it offers similar pattern and familiarity, reducing the cognitive burden when switching between other frameworks/languages. • Models • Views • Controllers • Database adapters • ORM (Waterline.js) • Auto-generated REST APIS, WebSockets by default using Socket.io
BSD-3-Clause Language: Haskell All languages: Haskell(97.66),CSS(1.54),Shell(0.70), C(0.10) Total code size: 571,466 Commits/day: 0.2707 Stars: 297 Forks: 71 Contributors: 43 Returning contributors (more than 4 weeks): 7 Open issues / Closed issues: 16/178 URL: https://github.com/snapframework/snap-core Snap is a simple Haskell web development framework for UNIX systems Core type definitions (Snap monad, HTTP types, etc) and utilities for web handlers. Features • A fast HTTP server library • A sensible and clean monad for web programming • An HTML-based templating system for generating pages Snaplets A snaplet is a composable web application. Snaplets allow you to build self-contained pieces of functionality and glue them together to make larger applications. Here are some of the things provided by the snaplet API: • Infrastructure for application state/environment • Snaplet initialization, reload, and cleanup • Management of filesystem data and automatic snaplet installation • Unified config file infrastructure
at: 2012/12 License: MIT Language: JavaScript All languages: JavaScript(99.36),HTML(0.58),Shell(0.05),CSS(0.00) Total code size: 1,069,901 Commits/day: 1.7238 Stars: 3699 Forks: 413 Contributors: 20 Returning contributors (more than 4 weeks): 3 Open issues / Closed issues: 3/508 URL: https://github.com/totaljs/framework Total.js framework is a framework for Node.js platfrom written in pure JavaScript similar to PHP's Laravel or Python's Django or ASP.NET MVC. It can be used as web, desktop, service or IoT application. • Controllers • Modules • Packages • Models • View engine • Components • Localization • Authorization • Validation • Security (XSS, CSRF, CORS) • Themes • Isomorphic code • Database
MIT Language: Crystal All languages: Crystal(84.06),HTML(13.26),JavaScript(2.11),CSS(0.39) , Makefile(0.18) Total code size: 469,844 Commits/day: 2.1948 Stars: 1158 Forks: 91 Contributors: 53 Returning contributors (more than 4 weeks): 8 Open issues / Closed issues: 79/231 URL: https://github.com/amberframework/amber Crystal web framework that makes building applications fast, simple, and enjoyable. Get started with quick prototyping, less bugs, and blazing fast performance. Inspired by Kemal, Rails, Phoenix and other popular application frameworks. • Controllers • Views • Models • Routing • Websockets • Mailers Sample require "amber" class HelloController < Amber::Controller::Base def index "hello world" end end Amber::Server.configure do |app| pipeline :api do end routes :api do get "/", HelloController, :index end end Amber::Server.start
[Custom license] Language: Go All languages: Go(100.00) Total code size: 1,222,162 Commits/day: 0.8854 Stars: 15588 Forks: 3372 Contributors: 231 Returning contributors (more than 4 weeks): 18 Open issues / Closed issues: 516/1646 URL: https://github.com/astaxie/beego Beego is a RESTful MVC framework for the rapid development of Go applications including APIs, web apps and backend services with integrated Go specific features such as interfaces and struct embedding. • Routing • Configuration • Controllers • XSRF filtering • Session control • Filters • URL Building • Form validation • Error Handling • Logging • Session Module • Cache Module • Logs Module • i18n • CLI development tools
Type: server-side Created at: 2014/10 License: MIT Language: Go All languages: Go(99.89),HTML(0.08),Shell(0.03) Total code size: 325,905 Commits/day: 0.9623 Stars: 2941 Forks: 223 Contributors: 72 Returning contributors (more than 4 weeks): 3 Open issues / Closed issues: 54/455 URL: https://github.com/gobuffalo/buffalo Buffalo is a Go web development eco-system. Designed to make the life of a Go web developer easier. • Uses Gorilla toolkit for routes, sessions cookies • Rails-like templating syntax, possibility to extend it's features • Possibility to use html/template or Your own • Buffalo toolbox • Test templates for action, resources, model • Hot Code Reload • Webpack powered frontend pipeline (optional) • Deep integration with pop/sqlx to handle database tasks • Tasks / background workers (as rake in rails)
to understand to be productive while remaining on par with what other frameworks can do. Pragmatic — Hyperapp holds firm on the functional programming front when managing your state, but takes a pragmatic approach to allowing for side effects, asynchronous actions, and DOM manipulations. Standalone — Do more with less. Hyperapp combines state management with a virtual DOM engine that supports keyed updates & lifecycle events — all with no dependencies. import { h, app } from "hyperapp" const state = { count: 0 } const actions = { down: value => state => ({ count: state.count - value }), up: value => state => ({ count: state.count + value }) } const view = (state, actions) => ( <div> <h1>{state.count}</h1> <button onclick={() => actions.down(1)}>-</button> <button onclick={() => actions.up(1)}>+</button> </div> ) app(state, actions, view, document.body) 74 hyperapp/hyperapp - 1 kB JavaScript framework for building web applications. Placement: 43 Type: client-side, server-side Created at: 2017/01 License: MIT Language: JavaScript All languages: JavaScript(96.42),TypeScript(3.58) Total code size: 37,931 Commits/day: 1.5672 Stars: 13943 Forks: 626 Contributors: 69 Returning contributors (more than 4 weeks): 6 Open issues / Closed issues: 29/362 URL: https://github.com/hyperapp/hyperapp
Apache-2.0 Language: Lua All languages: Lua(93.88),Go(5.17),Makefile(0.66),Batchfile(0.29) Total code size: 258,019 Commits/day: 0.6219 Stars: 2812 Forks: 307 Contributors: 63 Returning contributors (more than 4 weeks): 16 Open issues / Closed issues: 87/266 URL: https://github.com/luvit/luvit Node.JS for the Lua Inventor Async Choice If you don’t like callbacks and event emitters, use coroutines and write blocking style code without actually blocking your event loop. Modular Core The various projects in the luvit ecosystem can be mixed and matched to build the ideal runtime for your application. This helps teams migrate without having to learn a new way of programming. Sample local http = require('http') http.createServer(function (req, res) local body = "Hello world\n" res:setHeader("Content-Type", "text/plain") res:setHeader("Content-Length", #body) res:finish(body) end):listen(1337, '127.0.0.1') print('Server running at http://127.0.0.1:1337/') More samples https://github.com/luvit/luvit/tree/master/examples
Apache-2.0 Language: Python All languages: Python(99.58),Shell(0.24),C(0.10),Ruby(0.08),HTML(0. 00) Total code size: 1,694,690 Commits/day: 0.8423 Stars: 15939 Forks: 4603 Contributors: 291 Returning contributors (more than 4 weeks): 17 Open issues / Closed issues: 160/1155 URL: https://github.com/tornadoweb/tornado Python web framework and asynchronous networking library. By using non-blocking network I/O, Tornado can scale to tens of thousands of open connections, making it ideal for long polling, WebSockets, and other applications that require a long-lived connection to each user. • Requests handle • Routing • Template • Internationalization • Websocket import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") def make_app(): return tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": app = make_app() app.listen(8888) tornado.ioloop.IOLoop.current().start()
Apache-2.0 Language: JavaScript All languages: JavaScript(99.15),CSS(0.76),HTML(0.10) Total code size: 1,527,426 Commits/day: 0.8717 Stars: 1956 Forks: 298 Contributors: 80 Returning contributors (more than 4 weeks): 23 Open issues / Closed issues: 10/71 URL: https://github.com/enyojs/enyo A JavaScript application framework emphasizing modularity and encapsulation enyo - The core moonstone - A toolbox of UI components, optimized for TV onyx - Enyo's original UI library, optimized for mobile devices spotlight - A specialized library for handling focus state layout - A set of layout components enyo-ilib - A library providing localization services enyo-dev - A set of build tools for use throughout the development process canvas - A demonstration library with components for building HTML5-based canvas vie Architecture • Modules - libraries, available in the Enyo framework. • Kind - A kind is an object constructor created using the enyo.kind factory method. • Mixin - A set of properties from one or more objects to be added or "mixed in" to a single object. More information: http://enyojs.com/docs/
MIT Language: JavaScript All languages: JavaScript(99.89),Makefile(0.05),Shell(0.05) Total code size: 367,253 Commits/day: 1.4781 Stars: 38683 Forks: 6819 Contributors: 219 Returning contributors (more than 4 weeks): 8 Open issues / Closed issues: 171/2721 URL: https://github.com/expressjs/express Express is a minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications. • Routing • Various HTTP helpers • Templating support Many popular frameworks are based on Express. const express = require('express') const app = express() app.get('/', (req, res) => res.send('Hello World!')) app.listen(3000, () => console.log('Example app listening on port 3000!'))
MIT Language: PHP All languages: PHP(89.27),CSS(7.42),JavaScript(1.97),Smarty(1.34) Total code size: 1,743,126 Commits/day: 2.2587 Stars: 424 Forks: 234 Contributors: 50 Returning contributors (more than 4 weeks): 11 Open issues / Closed issues: 0/238 URL: https://github.com/nova-framework/framework Nova Framework is a MVC PHP with lot's of features. • Themes • Code snippets • Screencasts • Chat • Forum (*) Uses components of Laravel 4.x.
Apache-2.0 Language: Scala All languages: Scala(87.20),JavaScript(10.34),CSS(1.16),Java(0.53),HT ML(0.51),Shell(0.24),Batchfile(0.03) Total code size: 4,147,368 Commits/day: 1.0334 Stars: 1150 Forks: 265 Contributors: 80 Returning contributors (more than 4 weeks): 22 Open issues / Closed issues: 141/1313 URL: https://github.com/lift/framework Seven Things of Lift • Lazy Loading • Parallel page rendering • Comet and Ajax • Wiring ◦ Declare interdepencies between page elements • Designer friendly templates ◦ Designers can edit the same pages that your developers edit. The designers do not have to learn any tag libraries or any other language. The dynamic content is based on Lift's snippets and the snippet invocation is done via specially css class names. • Wizard ◦ Multipage input screens with full back-button support • Security ◦ A1: Injection - query strings escaping ◦ A2: XSS - automatically HTML escape Strings ◦ A3: Session Management - keeps passwords hashed at all times with per-row salt ◦ A4: Direct Object References - do not expose direct object references, but issues a session-specific token that refers to the objects. ◦ A5: CSRF - session-specific bindings between HTML elements and the server-side behaviors associated with those elements. The bindings cannot be predicted so it's not possible to issue Cross Site requests that invoke session-specific bindings. ◦ A8: URL Access - includes SiteMap which provides declarative rules for access to URLs in the application. SiteMap will deny access to URLs unless the criteria is met for accessing the specific URL. More : https://seventhings.liftweb.net/ Samples : https://github.com/lift/examples Modules : https://github.com/liftmodules
[Custom license] Language: Python All languages: Python(99.80),Makefile(0.11),HTML(0.08),CSS(0.00) Total code size: 494,569 Commits/day: 0.6803 Stars: 36437 Forks: 10894 Contributors: 409 Returning contributors (more than 4 weeks): 21 Open issues / Closed issues: 27/1467 URL: https://github.com/pallets/flask The Python micro framework for building web applications. Based on ItsDangerous — cryptographically sign your data and hand it over to someone else Jinja — a full featured template engine for Python MarkupSafe — a HTML-Markup safe string for Python Werkzeug — a WSGI utility library for Python from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run() More information: http://flask.pocoo.org/docs/
client-side Created at: 2016/10 License: MIT Language: JavaScript All languages: JavaScript(88.18),HTML(9.12),Vue(2.70) Total code size: 304,906 Commits/day: 4.0355 Stars: 12821 Forks: 985 Contributors: 123 Returning contributors (more than 4 weeks): 7 Open issues / Closed issues: 412/2561 URL: https://github.com/nuxt/nuxt.js Vue.js Meta Framework to create complex, fast & universal web applications quickly. Nuxt.js comes with a lot of features to help the development between the client side and the server side such as Features • Routing • Asynchronous Data • Middleware • Layouts • Templating • Plugins • Modules
[Custom license] Language: Java All languages: Java(99.00),Kotlin(0.43),CSS(0.14), HTML(0.13),Groovy(0.11),AspectJ(0.09),FreeMarker(0.04) ,GAP(0.02),Batchfile(0.01),Shell(0.01),XSLT(0.01),Ruby(0. 01),JavaScript(0.00),Smarty(0.00),PLpgSQL(0.00),Pytho n(0.00) Total code size: 36,316,972 Commits/day: 4.9974 Stars: 21582 Forks: 14041 Contributors: 280 Returning contributors (more than 4 weeks): 34 Open issues / Closed issues: 0/0 URL: github.com/spring-projects/spring-framework The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key element of Spring is infrastructural support at the application level: Spring focuses on the "plumbing" of enterprise applications so that teams can focus on application-level business logic, without unnecessary ties to specific deployment environments. Features Core technologies: dependency injection, events, resources, i18n, validation, data binding, type conversion, SpEL, AOP. Testing: mock objects, TestContext framework, Spring MVC Test, WebTestClient. Data Access: transactions, DAO support, JDBC, ORM, Marshalling XML. Spring MVC and Spring WebFlux web frameworks. Integration: remoting, JMS, JCA, JMX, email, tasks, scheduling, cache. Languages: Kotlin, Groovy, dynamic languages. https://spring.io/projects/spring-framework
[Custom license] Language: D All languages: D(98.07),Meson(1.21),Shell(0.72) Total code size: 1,903,305 Commits/day: 1.9309 Stars: 922 Forks: 263 Contributors: 151 Returning contributors (more than 4 weeks): 26 Open issues / Closed issues: 388/756 URL: https://github.com/vibe-d/vibe.d vibe.d is a high-performance asynchronous I/O, concurrency and web application toolkit written in D. It already contains many supplemental features such as database support to be able to offer a complete development environment. For more specialized needs, there are also many compatible DUB packages available. Multi-threading Natively compiled code Load balancing Generic concurrency tools • HTTP 1.0/1.1 server • Asynchronous I/O • Static file serving • Template system • WebSockets • Sessions • Native database driversCryptography • JSON and BSON support • Simple SMTP client #!/usr/bin/env dub /+ dub.sdl: name "hello_vibed" dependency "vibe-d" version="~>0.8.0" +/ import vibe.d; void main() { auto settings = new HTTPServerSettings; settings.port = 8080; listenHTTP(settings, (req, res) { res.writeBody("Hello Vibe.d: " ~ req.path); }); runApplication(); }
MIT Language: JavaScript All languages: JavaScript(98.56),HTML(1.44),Batchfile(0.00) Total code size: 676,450 Commits/day: 1.1351 Stars: 8633 Forks: 669 Contributors: 211 Returning contributors (more than 4 weeks): 18 Open issues / Closed issues: 139/1100 URL: https://github.com/MithrilJS/mithril.js Fast and simple client-side Javascript framework for building Single Page Applications. It's small (8.90 KB gzipped), fast and provides routing and XHR utilities out of the box. Detailed comparaison with React / Angular / VueJS https://mithril.js.org/framework-comparison.html
MIT Language: Ruby All languages: Ruby(99.48),HTML(0.41),Shell(0.07),CSS(0.03),Liquid( 0.01),CoffeeScript(0.00) Total code size: 635,459 Commits/day: 0.7330 Stars: 10007 Forks: 1790 Contributors: 356 Returning contributors (more than 4 weeks): 25 Open issues / Closed issues: 80/609 URL: https://github.com/sinatra/sinatra Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort • Routing • Static Files • Views / Templates • Filters • Helpers • Sessions • Logging • Middlewares require 'sinatra' get '/frank-says' do 'Put this in your pipe & smoke it!' end
License: [Custom license] Language: Java All languages: Java(95.77),CSS(3.07),JavaScript(0.54),HTML(0.42),Py thon(0.14),Shell(0.06),Smarty(0.00) Total code size: 24,444,693 Commits/day: 7.4748 Stars: 1363 Forks: 624 Contributors: 157 Returning contributors (more than 4 weeks): 55 Open issues / Closed issues: 3104/6186 URL: https://github.com/vaadin/framework Vaadin is a Java framework for building web applications. • Building applications out of components (49) • Working with data: forms, data binding, validation • Mobile support • Testing: Unit and end-to-end testing https://vaadin.com/comparison https://pages.vaadin.com/vaadin-vs-angular
MIT Language: JavaScript All languages: JavaScript(97.65),HTML(0.70),TypeScript(0.57), Vue(0.52),CSS(0.44),Shell(0.13) Total code size: 2,564,042 Commits/day: 1.4018 Stars: 97147 Forks: 14263 Contributors: 189 Returning contributors (more than 4 weeks): 18 Open issues / Closed issues: 218/6517 URL: https://github.com/vuejs/vue "I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight". Evan You, Vue.js creator, former Googler. Vue.js s an open-source JavaScript framework for building user interfaces. Integration into projects that use other JavaScript libraries is made easy with Vue because it is designed to be incrementally adoptable. Vue can also function as a web application framework capable of powering advanced single-page applications. Live demo https://vuejs.org/v2/examples/
[Custom license] Language: PHP All languages: PHP(100.00) Total code size: 326 Commits/day: 1.2867 Stars: 1243 Forks: 264 Contributors: 107 Returning contributors (more than 4 weeks): 24 Open issues / Closed issues: 21/643 URL: https://github.com/nette/nette Nette is a set of PHP 7 standalone components that make up the framework. • Bootstrap • Caching • Database • Finder • Forms • Http • Templating • Mail • Neon • Reflection • Files operations • Access control system
MIT Language: Haskell All languages: Haskell(99.67),HTML(0.23),Shell(0.06),CSS(0.02),Java Script(0.00) Total code size: 951,284 Commits/day: 1.1593 Stars: 1932 Forks: 315 Contributors: 185 Returning contributors (more than 4 weeks): 21 Open issues / Closed issues: 126/809 URL: https://github.com/yesodweb/yesod Yesod (IPA: [je'sod]) is a web framework based on Haskell for productive development of type-safe, REST model based (where URLs identify resources, and HTTP methods identify transitions) web applications. Yesod is based on templates, to generate instances for classes, entities, and dynamic content process functions, making use of Haskell compiled templates called QuasiQuotes, that admit code expression interpolations in web-like language snippets, making it fully type-checked at compile-time. • Routing and Handlers • Widgets • Forms • Sessions • Persistent • REST • Authentication and Authorization • Scaffolding and the Site Template • Internationalization • Database
upon Sinatra Placement: 17 Type: server-side Created at: 2009/11 License: [Custom license] Language: Ruby All languages: Ruby(96.32),HTML(2.58),CSS(0.73),JavaScript(0.37) Total code size: 1,296,607 Commits/day: 1.1516 Stars: 3120 Forks: 494 Contributors: 207 Returning contributors (more than 4 weeks): 16 Open issues / Closed issues: 36/1316 URL: https://github.com/padrino/padrino-framework Padrino is a ruby framework built upon the excellent Sinatra Web Library. Sinatra is a DSL for creating simple web applications in Ruby quickly and with minimal effort. This framework tries to make it as fun and easy as possible to code more advanced web applications by building upon the Sinatra philosophies and foundations. • Generators • Routing • Tag, View, Asset, Form Helpers • Mailer • Caching • Built-in Admin interface • Logging • Reloading • Localization Agnotstic ORM/ODM: activerecord, datamapper, mongomapper, mongoid, sequel, couchrest JavaScript: prototype, rightjs, jquery, mootools, extcore Renderer: Erb, Haml, Slim Test: Bacon, Shoulda, Cucumber, Riot, RSpec Stylesheet: Less, Sass, SCSS, Compass Mock: rr, Mocha
Apache-2.0 Language: Scala All languages: Scala(71.66),Java(27.12),HTML(0.95),Shell(0.13),JavaS cript(0.08),Roff(0.03),CSS(0.03) Total code size: 4,193,936 Commits/day: 1.9344 Stars: 10494 Forks: 3550 Contributors: 406 Returning contributors (more than 4 weeks): 55 Open issues / Closed issues: 390/2647 URL: https://github.com/playframework/playframewor k Play Framework is an open-source web application framework, written in Scala and also usable from other programming languages that are compiled to Bytecode, e.g. Java, which follows the model–view–controller (MVC) architectural pattern. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser. Libraries • Akka-HTTP or Netty for the web server • Akka Streams for all asynchronous IO and streaming • No required ORM, but Anorm (Scala), Slick (Scala) and Ebean (Java) are included for database access • Twirl (Scala) as the template engine • Built-in hot-reloading • sbt as the build tool and for dependency management Features • RESTful framework • Authentication • Validation • JSON and XML parsers and marshallers • Persistence layer based on JPA • Embedded database • Embedded testing framework • Automatic file uploads • OpenID • Web services clients
Placement: 13 Type: server-side Created at: 2012/04 License: [Custom license] Language: Python All languages: Python(95.65),JavaScript(1.96),HTML(1.73),CSS(0.65), Shell(0.01),Smarty(0.00),Makefile(0.00) Total code size: 13,048,424 Commits/day: 9.6374 Stars: 34385 Forks: 14571 Contributors: 406 Returning contributors (more than 4 weeks): 97 URL: https://github.com/django/django Django (/ˈdʒæŋɡoʊ/) is a free and open-source web framework, written in Python, which follows the model-view-template (MVT) architectural pattern. Django's primary goal is to ease the creation of complex, database-driven websites. Django emphasizes reusability and "pluggability" of components, less code, low coupling, rapid development, and the principle of don't repeat yourself. Python is used throughout, even for settings files and data models. Django also provides an optional administrative create, read, update and delete interface that is generated dynamically through introspection and configured via admin models. • URL dispatcher • Form serialization and validation system that can translate between HTML forms and values suitable for storage in the database • Templating • Caching • Middlewares • Internal dispatcher system that allows components of an application to communicate events to each other via pre-defined signals • Internationalization • Serialization system that can produce and read XML and/or JSON representations • ORM
Apache-2.0 Language: Go All languages: Go(98.94),HTML(0.98),Shell(0.08) Total code size: 1,978,999 Commits/day: 2.0433 Stars: 26223 Forks: 3139 Contributors: 444 Returning contributors (more than 4 weeks): 24 Open issues / Closed issues: 281/2642 URL: https://github.com/gohugoio/hugo Hugo is one of the most popular open-source static site generators. • Fast • Unlimited content types, taxonomies, menus, API-driven content • Markdown powered • i18n • Outputs content in AMP / JSON / Custom format • Many themes • Good documentation • Generated site could be hosted anywhere • Lipi or Netlify frontends for webmaster's graphical GUI (Optional) Migrations from • WordPress • Joomla • Drupal • DokuWiki • Tumblr • Blogger • Jekyll
application framework Placement: 11 Type: server-side Created at: 2010/11 License: Apache-2.0 Language: Java All languages: Java(98.83),C(1.07),Shell(0.06),Groovy(0.01),C++(0.01), Makefile(0.01),HTML(0.01),CSS(0.00) Total code size: 14,540,961 Commits/day: 2.5747 Stars: 14341 Forks: 6410 Contributors: 331 Returning contributors (more than 4 weeks): 34 Open issues / Closed issues: 336/3822 URL: https://github.com/netty/netty Netty is a non-blocking I/O client-server framework for the development of Java network applications such as protocol servers and clients. The asynchronous event-driven network application framework and tools are used to simplify network programming such as TCP and UDP socket servers. Besides being an asynchronous network application framework, Netty also includes built-in HTTP, HTTP2, DNS and more protocols support, including the ability to run inside a servlet container, support for WebSockets, integration with Google Protocol Buffers, SSL/TLS support, support for SPDY protocol and support for message compression.
Type: server-side Created at: 2010/02 License: Apache-2.0 Language: Java All languages: Java(50.65),Groovy(47.87),CSS(0.91),HTML(0.30),Shel l(0.10),Python(0.06),PostScript(0.05),XSLT(0.03),Java Script(0.03) Total code size: 6,367,389 Commits/day: 3.6736 Stars: 2329 Forks: 926 Contributors: 208 Returning contributors (more than 4 weeks): 33 Open issues / Closed issues: 183/9908 URL: https://github.com/grails/grails-core Grails is an open source web application framework that uses the Apache Groovy programming language (which is in turn based on the Java platform). It is intended to be a high-productivity framework by following the "coding by convention" paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the developer. • Controllers • Views • Persistence • Scaffolding • Authentification • Plugins • Internationalization • Validation package helloworld class HelloController { def index() { render "Hello World!" } }
Created at: 2008/04 License: MIT Language: Ruby All languages: Ruby(96.72),HTML(1.60),JavaScript(1.04),CoffeeScrip t(0.34),CSS(0.26),Shell(0.04),Yacc(0.01) Total code size: 12,285,673 Commits/day: 10.6343 Stars: 39848 Forks: 16114 Contributors: 383 Returning contributors (more than 4 weeks): 100 Open issues / Closed issues: 1117/11150 URL: https://github.com/rails/rails Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer, and HTML, CSS and JavaScript for display and user interfacing. In addition to MVC, Rails emphasizes the use of other well-known software engineering patterns and paradigms, including convention over configuration (CoC), don't repeat yourself (DRY), and the active record pattern. Ruby on Rails' emergence in the 2000s greatly influenced web app development, through innovative features such as seamless database table creations, migrations, and scaffolding of views to enable rapid application development. Ruby on Rails' influence on other web frameworks remains apparent today, with many frameworks in other languages borrowing its ideas, including Django in Python, Laravel in PHP, Phoenix in Elixir, and Sails.js in Node.js.
Created at: 2010/01 License: MIT Language: PHP All languages: PHP(97.67),HTML(2.30),CSS(0.02),Shell(0.00),JavaScr ipt(0.00) Total code size: 15,495,901 Commits/day: 5.5576 Stars: 17783 Forks: 6233 Contributors: 383 Returning contributors (more than 4 weeks): 98 Open issues / Closed issues: 880/9757 URL: https://github.com/symfony/symfony Symfony is a PHP web application framework and a set of reusable PHP components/libraries. Symfony aims to speed up the creation and maintenance of web applications and to replace repetitive coding tasks. Symfony has a low performance overhead used with a bytecode cache. Symfony is aimed at building robust applications in an enterprise context, and aims to give developers full control over the configuration: from the directory structure to the foreign libraries, almost everything can be customized. To match enterprise development guidelines, Symfony is bundled with additional tools to help developers test, debug and document projects.
for building user interfaces. Placement: 7 Type: client-side Created at: 2013/05 License: MIT Language: JavaScript All languages: JavaScript(93.22),C++(2.22),HTML(2.01),TypeScript(0.9 8),CoffeeScript(0.77),Shell(0.29),C(0.26),CSS(0.23),Pyt hon(0.01),Makefile(0.01) Total code size: 1,996,779 Commits/day: 3.1546 Stars: 97857 Forks: 18408 Contributors: 449 Returning contributors (more than 4 weeks): 61 Open issues / Closed issues: 483/5629 URL: https://github.com/facebook/react React (also known as React.js or ReactJS) is a JavaScript library for building user interfaces. React can be used as a base in the development of single-page or mobile applications. However, to create complex applications, it is required to use a composition of various libraries for state management (e.g. Redux), routing, etc. Sample <div id="myReactApp"></div> <script type="text/babel"> class Greeter extends React.Component { render() { return <h1>{this.props.greeting}</h1> } } ReactDOM.render(<Greeter greeting="Hello World!" />, document.getElementById('myReactApp')); </script>
ambitious web applications Placement: 5 Type: client-side Created at: 2011/05 License: MIT Language: JavaScript All languages: JavaScript(84.48),TypeScript(15.27),HTML(0.23),Shell( 0.02) Total code size: 4,140,690 Commits/day: 3.2666 Stars: 19037 Forks: 3898 Contributors: 363 Returning contributors (more than 4 weeks): 86 Open issues / Closed issues: 331/5380 URL: https://github.com/emberjs/ember.js Ember.js is an open-source JavaScript web framework, based on the Model–view–viewmodel (MVVM) pattern. Although primarily considered a framework for the web, it is also possible to build desktop and mobile applications in Ember. The most notable example of an Ember desktop application is Apple Music, a feature of the iTunes desktop application.
Type: client-side Created at: 2014/09 License: MIT Language: TypeScript All languages: TypeScript(89.42),JavaScript(4.79),CSS(2.07),HTML(1. 97),Python(0.99),Shell(0.71),PHP(0.05) Total code size: 15,060,907 Commits/day: 7.0647 Stars: 36993 Forks: 8952 Contributors: 418 Returning contributors (more than 4 weeks): 75 Open issues / Closed issues: 2376/13032 URL: https://github.com/angular/angular Angular (commonly referred to as "Angular 2+") is a TypeScript-based open-source front-end web application platform led by the Angular Team at Google and by a community of individuals and corporations. Angular is a complete rewrite from the same team that built AngularJS (1.x).
compromise speed and maintainability. Placement: 3 Type: server-side Created at: 2014/01 License: MIT Language: Elixir All languages: Elixir(89.72),JavaScript(8.84),CSS(0.99),HTML(0.44) Total code size: 1,062,795 Commits/day: 2.1910 Stars: 11907 Forks: 1430 Contributors: 445 Returning contributors (more than 4 weeks): 37 Open issues / Closed issues: 26/1501 URL: https://github.com/phoenixframework/phoenix Phoenix is a web development framework written in the functional programming language Elixir. Phoenix uses a server-side model-view-controller (MVC) pattern. Based on Erlang, it was developed to provide scalable web applications using an approach similar to Ruby on Rails.
modern web applications. Placement: 2 Type: server-side, client-side Created at: 2012/01 License: [Custom license] Language: JavaScript All languages: JavaScript(98.02),Shell(0.57),HTML(0.43),CoffeeScrip t(0.41),PowerShell(0.34),CSS(0.13),Batchfile(0.05),Rub y(0.04),Java(0.01) Total code size: 7,375,333 Commits/day: 7.3126 Stars: 39898 Forks: 4996 Contributors: 390 Returning contributors (more than 4 weeks): 46 Open issues / Closed issues: 129/7478 URL: https://github.com/meteor/meteor Meteor, or MeteorJS, is a JS web framework. Meteor allows for rapid prototyping and produces cross-platform (Android, iOS, Web) code. It integrates with MongoDB and uses the Distributed Data Protocol and a publish–subscribe pattern to automatically propagate data changes to clients without requiring the developer to write any synchronization code. On the client, Meteor can be used with its own Blaze templating engine, as well as with the Angular or React frameworks. Meteor provides full stack reactivity, allowing your UI to seamlessly reflect the true state of the world with minimal development effort.
1 Type: server-side Created at: 2013/01 License: MIT Language: PHP All languages: PHP(99.40),HTML(0.46),CSS(0.09),JavaScript(0.04),V ue(0.01) Total code size: 5,167,023 Commits/day: 5.6343 Stars: 12600 Forks: 5473 Contributors: 412 Returning contributors (more than 4 weeks): 88 Open issues / Closed issues: 161/10497 URL: https://github.com/laravel/framework Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as: • Simple, fast routing engine. • Powerful dependency injection container. • Multiple back-ends for session and cache storage. • Database agnostic schema migrations. • Robust background job processing. • Real-time event broadcasting.