Coder Social home page Coder Social logo

vishalsodani / web-frameworks Goto Github PK

View Code? Open in Web Editor NEW

This project forked from the-benchmarker/web-frameworks

0.0 1.0 0.0 90.75 MB

Which is the fastest web framework?

License: MIT License

Ruby 5.95% JavaScript 1.96% Crystal 11.63% Go 3.68% Rust 0.71% Elixir 2.23% Swift 1.34% Python 7.30% C# 0.42% Scala 0.84% Objective-C 0.85% Nim 0.47% CMake 6.47% C++ 1.51% Java 1.48% Lua 0.01% PHP 48.64% Dockerfile 3.22% C 1.12% Makefile 0.17%

web-frameworks's Introduction

Which is the fastest?

Build Status Join the chat at https://gitter.im/which_is_the_fastest/Lobby

This project aims to be a load benchmarking suite, no more, no less

Measuring response times (routing times) for each framework (middleware).

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
Results are not production-ready yet
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

Additional purposes :

  • Helping decide between languages, depending on use case
  • Learning languages, best practices, devops culture ...
  • Having fun ❤️

Requirements

  • Crystal as built-in tools are made in this language
  • Docker as frameworks are isolated into containers
  • wrk as benchmarking tool, >= 4.1.0
  • postgresql to store data, >= 10

ℹ️ you need wrk stable

git clone --branch 4.1.0 https://github.com/wg/wrk

⚠️ docker is used for development purpose, production results will be computed on DigitalOcean ⚠️

Usage

  • Install all dependencies
shards install
  • Build internal tools
shards build
  • Create and initialize the database
createdb -U postgres benchmark
psql -U postgres -d benchmark < .ci/dump.sql
export DATABASE_URL="postgresql://postgres@localhost/benchmark"
  • Make configuration
bin/make config
  • Build containers

jobs are either languages (example : crystal) or frameworks (example : router.cr)

bin/neph [job1] [job2] [job3] ...
  • Export all results readme
bin/db to_readme

Results

ℹ️ Updated on 2020-02-06 ℹ️

Benchmarking with wrk

  • Threads : 128
  • Connections : 128
  • Duration : 10 (seconds)
Language Framework Speed (req/s) Horizontal scale (parallelism) Vertical scale (concurrency)
1 nim (1.0) httpbeast (0.2) 163 954
2 javascript (13.7) sifrr (0.0) 160 286
3 javascript (13.7) nanoexpress (1.1) 159 339
4 java (8) rapidoid (5.5) 144 307
5 go (1.13) fiber (1.3) 142 380
6 crystal (0.31) router.cr (0.2) 142 274
7 crystal (0.31) toro (0.4) 141 510
8 crystal (0.31) spider-gazelle (2.3) 138 260
9 crystal (0.31) raze (0.3) 137 109
10 c (11) agoo-c (0.7) 136 090
11 go (1.13) fasthttp (1.9) 135 443
12 go (1.13) fasthttprouter (0.1) 131 251
13 nim (1.0) jester (0.4) 131 078
14 go (1.13) atreugo (10.3) 131 054
15 go (1.13) router (0.6) 130 993
16 crystal (0.31) kemal (0.26) 130 916
17 crystal (0.31) grip (0.27) 130 535
18 go (1.13) gorouter-fasthttp (4.4) 129 670
19 crystal (0.31) amber (0.3) 125 806
20 crystal (0.31) orion (2.1) 122 655
21 php (7.4) workerman (3.5) 121 879
22 ruby (2.6) agoo (2.12) 105 580
23 java (8) act (1.8) 101 065
24 go (1.13) rte (0.0) 96 435
25 csharp (8.0) aspnetcore (3.1) 91 867
26 go (1.13) gorouter (4.4) 91 732
27 go (1.13) chi (4.0) 91 054
28 go (1.13) aero (1.3) 89 437
29 go (1.13) kami (2.2) 89 337
30 go (1.13) violetear (7.0) 87 400
31 go (1.13) goroute (0.0) 87 044
32 go (1.13) echo (4.1) 86 018
33 javascript (13.7) polkadot (1.0) 85 629
34 go (1.13) gorilla-mux (1.7) 85 608
35 go (1.13) beego (1.12) 84 401
36 go (1.13) gin (1.5) 83 035
37 go (1.13) webgo (3.0) 82 415
38 cpp (11) drogon (1.0) 82 262
39 javascript (13.7) 0http (2.2) 81 694
40 javascript (13.7) restana (4.0) 77 323
41 javascript (13.7) polka (0.5) 75 140
42 go (1.13) air (0.14) 74 062
43 swift (5.1) perfect (3.1) 73 553
44 javascript (13.7) rayo (1.3) 73 059
45 go (1.13) gf (1.11) 70 389
46 python (3.8) falcon (2.0) 69 512
47 javascript (13.7) muneem (2.4) 64 557
48 elixir (1.1) cowboy_stream (2.7) 62 871
49 javascript (13.7) fastify (2.11) 61 642
50 scala (2.12) akkahttp (10.1) 61 567
51 javascript (13.7) foxify (0.1) 59 782
52 python (3.8) apidaora (0.12) 59 648
53 php (7.4) one (1.9) 58 785
54 kotlin (1.3) ktor (1.2) 57 998
55 go (1.13) mars (1.0) 56 674
56 c (11) kore (3.3) 55 814
57 java (8) javalin (3.5) 55 070
58 python (3.8) bottle (0.12) 54 656
59 javascript (13.7) iotjs-express (0.0) 54 321
60 python (3.8) asgineer (0.7) 54 295
61 javascript (13.7) koa (2.11) 54 045
62 java (8) spring-boot (2.1) 50 542
63 python (3.8) blacksheep (0.2) 50 480
64 clojure (1.1) coast (1.0) 50 314
65 swift (5.1) kitura-nio (2.8) 48 014
66 swift (5.1) vapor (3.3) 47 921
67 java (8) micronaut (1.2) 47 825
68 javascript (13.7) express (4.17) 47 691
69 swift (5.1) kitura (2.8) 46 818
70 php (7.4) hyperf (1.0) 46 776
71 python (3.8) pyramid (1.1) 46 458
72 scala (2.12) http4s (0.18) 46 347
73 rust (1.41) nickel (0.11) 46 252
74 python (3.8) hug (2.6) 46 076
75 python (3.8) starlette (0.13) 45 384
76 rust (1.41) gotham (0.4) 44 439
77 cpp (11) evhtp (1.2) 43 817
78 php (7.4) imi (1.0) 42 404
79 elixir (1.1) cowboy (2.7) 41 590
80 php (7.4) sw-fw-less (preview) 41 525
81 ruby (2.6) syro (3.1) 41 336
82 ruby (2.6) roda (3.28) 40 109
83 javascript (13.7) hapi (19.1) 38 232
84 elixir (1.1) plug (1.8) 37 290
85 ruby (2.6) cuba (3.9) 36 669
86 javascript (13.7) restify (8.5) 36 291
87 php (7.4) swoft (2.0) 35 653
88 elixir (1.1) phoenix (1.4) 32 409
89 python (3.8) responder (2.0) 30 614
90 python (3.8) fastapi (0.48) 30 157
91 ruby (2.6) rack-routing (0.0) 30 002
92 javascript (13.7) moleculer (0.13) 28 676
93 crystal (0.31) lucky (0.18) 27 442
94 fsharp (4.7) suave (2.5) 27 300
95 python (3.8) aiohttp (3.6) 26 937
96 python (3.8) molten (0.27) 26 539
97 crystal (0.31) athena (0.7) 26 028
98 python (3.8) clastic (19.9) 25 622
99 python (3.8) flask (1.1) 24 108
100 ruby (2.6) flame (4.18) 23 454
101 javascript (13.7) turbo_polka (0.3) 22 502
102 java (8) spring-framework (5.2) 22 464
103 python (3.8) sanic (19.12) 21 537
104 python (3.8) masonite (2.3) 21 254
105 ruby (2.6) camping (2.1) 20 994
106 ruby (2.6) plezi (0.16) 20 454
107 python (3.8) emmett (2.0.0a1) 20 450
108 rust (1.41) iron (0.6) 18 834
109 ruby (2.6) hanami (1.3) 18 832
110 php (7.4) spiral (2.4) 17 300
111 ruby (2.6) sinatra (2.0) 16 991
112 ruby (2.6) grape (1.3) 14 244
113 python (3.8) quart (0.10) 13 560
114 swift (5.1) swifter (1.4) 11 306
115 python (3.8) django (3.0) 10 464
116 python (3.8) tornado (6.0) 10 422
117 go (1.13) gramework (1.7) 10 190
118 python (3.8) cherrypy (18.5) 9 335
119 php (7.4) ubiquity (2.3) 9 041
120 php (7.4) one-fpm (1.9) 7 611
121 php (7.4) phalcon (4.0) 7 485
122 php (7.4) hamlet (3.2) 7 420
123 julia (1.3) merly (0.2) 4 870
124 crystal (0.31) onyx (0.5) 4 848
125 php (7.4) slim (4.4) 4 509
126 php (7.4) lumen (6.3) 4 362
127 php (7.4) yii (2.0) 4 323
128 ruby (2.6) rails (6.0) 3 977
129 php (7.4) zend-expressive (3.2) 3 630
130 php (7.4) symfony (4.3) 3 433
131 perl (5.3) dancer2 (2.0) 3 380
132 python (3.8) cyclone (1.3) 2 371
133 php (7.4) zend-framework (3.1) 1 850
134 python (3.8) klein (19.6) 1 618
135 python (3.8) nameko (2.12) 1 569
136 php (7.4) basicphp (0.9) 1 396
137 php (7.4) laravel (6.14) 415

How to contribute ?

In any way you want ...

  • Request a framework addition
  • Report a bug (on any implementation)
  • Suggest an idea
  • ...

Any kind of idea is ❤️

Contributors

web-frameworks's People

Contributors

waghanza avatar dependabot-preview[bot] avatar dependabot[bot] avatar tbrand avatar dependencies[bot] avatar renovate[bot] avatar pyup-bot avatar kiliankoe avatar petersonfs avatar stakach avatar kelvinst avatar paulcsmith avatar appleboy avatar an-tao avatar tanner0101 avatar dalisoft avatar greed2411 avatar ohler55 avatar yurunsoft avatar gqcn avatar 2vg avatar depfu[bot] avatar vardius avatar lukeed avatar david-m-s avatar audy avatar adam12 avatar petermm avatar lizhichao avatar vaibhavmule avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.