GithubHelp home page GithubHelp logo

davidmr001 / web-frameworks Goto Github PK

View Code? Open in Web Editor NEW

This project forked from the-benchmarker/web-frameworks

0.0 0.0 0.0 90.63 MB

Which is the fastest web framework?

License: MIT License

Ruby 5.88% JavaScript 1.95% Crystal 11.34% Go 3.56% Rust 0.70% Elixir 4.11% Swift 1.32% Python 7.02% C# 0.42% Scala 0.83% Objective-C 0.84% Nim 0.30% CMake 6.38% C++ 1.49% Java 1.46% Lua 0.73% PHP 47.50% Dockerfile 2.90% C 1.10% 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

ℹ️ 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
  • Initialize sqlite database
bin/db init
  • 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

Language Framework Speed (req/s) Horizontal scale (parallelism) Vertical scale (concurrency)
1 nim (1.0) httpbeast (0.2) 191 573
2 c (11) agoo-c (0.7) 185 350
3 javascript (12.13) nanoexpress-pro (1.8) 170 223
4 c (11) kore (3.3) 159 399
5 nim (1.0) jester (0.4) 144 446
6 go (1.13) fasthttprouter (0.1) 140 942
7 go (1.13) router (1.6) 140 529
8 javascript (12.13) nanoexpress (1.1) 137 424
9 go (1.13) fasthttp (1.7) 136 656
10 crystal (0.31) router.cr (0.2) 133 660
11 go (1.13) atreugo (9.0) 132 875
12 go (1.13) gorouter-fasthttp (4.2) 131 785
13 crystal (0.31) toro (0.4) 129 067
14 crystal (0.31) raze (0.3) 128 026
15 crystal (0.31) spider-gazelle (2.3) 126 994
16 crystal (0.31) kemal (0.26) 119 065
17 java (8) rapidoid (5.5) 117 007
18 ruby (2.6) agoo (2.11) 110 450
19 crystal (0.31) amber (0.3) 107 519
20 javascript (12.13) sifrr (0.0) 106 938
21 crystal (0.31) orion (2.1) 103 818
22 go (1.13) rte (0.0) 94 423
23 php (7.4) workerman (3.5) 91 373
24 csharp (7.3) aspnetcore (3.0) 87 841
25 go (1.13) gorouter (4.2) 87 461
26 go (1.13) chi (4.0) 84 938
27 go (1.13) violetear (7.0) 84 756
28 go (1.13) aero (1.3) 84 677
29 go (1.13) goroute (0.0) 84 295
30 go (1.13) gin (1.5) 83 432
31 go (1.13) gorilla-mux (1.7) 81 856
32 go (1.13) beego (1.12) 81 767
33 go (1.13) kami (2.2) 81 423
34 go (1.13) echo (4.1) 78 414
35 go (1.13) webgo (3.0) 76 699
36 cpp (11) drogon (1.0) 74 221
37 go (1.13) air (0.14) 68 999
38 go (1.13) gf (1.1) 66 661
39 javascript (12.13) restana (4.0) 66 291
40 python (3.8) falcon (2.0) 62 783
41 scala (2.12) akkahttp (10.1) 56 377
42 kotlin (1.3) ktor (1.2) 54 012
43 javascript (12.13) muneem (2.4) 53 833
44 go (1.13) mars (1.0) 52 351
45 python (3.8) bottle (0.12) 50 961
46 php (7.4) one (1.9) 50 759
47 rust (1.4) gotham (0.4) 49 688
48 clojure (1.10) coast (1.0) 49 682
49 ruby (2.6) plezi (0.16) 47 741
50 python (3.8) asgineer (0.7) 47 689
51 javascript (12.13) polkadot (1.0) 47 212
52 java (8) javalin (3.5) 46 660
53 java (8) act (1.8) 44 981
54 javascript (12.13) fastify (2.11) 44 978
55 php (7.4) phalcon (4.0) 44 379
56 php (7.4) hyperf (1.0) 42 658
57 php (7.4) ubiquity (2.3) 41 912
58 python (3.8) blacksheep (0.2) 41 253
59 javascript (12.13) rayo (1.3) 40 820
60 cpp (11) evhtp (1.2) 40 116
61 scala (2.12) http4s (0.18) 39 782
62 python (3.8) pyramid (1.1) 38 499
63 python (3.8) hug (2.6) 38 231
64 php (7.4) lumen (6.3) 37 897
65 php (7.4) slim (4.4) 37 481
66 python (3.8) starlette (0.13) 37 341
67 ruby (2.6) syro (3.1) 35 685
68 php (7.4) one-fpm (1.9) 35 503
69 php (7.4) basicphp (0.9) 35 214
70 php (7.4) zend-expressive (3.2) 34 750
71 php (7.4) imi (1.0) 34 586
72 php (7.4) zend-framework (3.1) 34 495
73 php (7.4) hamlet (3.2) 34 298
74 ruby (2.6) roda (3.27) 34 070
75 swift (5.1) perfect (3.1) 33 891
76 php (7.4) symfony (4.3) 32 688
77 rust (1.4) nickel (0.11) 32 092
78 php (7.4) sw-fw-less (preview) 31 884
79 ruby (2.6) cuba (3.9) 31 455
80 php (7.4) laravel (6.9) 31 130
81 php (7.4) swoft (2.0) 30 205
82 javascript (12.13) express (4.17) 29 741
83 javascript (12.13) koa (2.11) 26 863
84 ruby (2.6) rack-routing (0.0) 26 834
85 javascript (12.13) 0http (2.2) 26 643
86 swift (5.1) vapor (3.3) 26 545
87 python (3.8) fastapi (0.45) 24 720
88 javascript (12.13) polka (0.5) 24 225
89 java (8) spring-boot (2.1) 23 774
90 python (3.8) responder (2.0) 22 968
91 crystal (0.31) lucky (0.18) 22 457
92 python (3.8) molten (0.27) 21 882
93 ruby (2.6) camping (2.1) 21 532
94 python (3.8) aiohttp (3.6) 21 473
95 python (3.8) clastic (19.9) 21 446
96 python (3.8) flask (1.1) 20 443
97 crystal (0.31) athena (0.7) 19 763
98 ruby (2.6) flame (4.18) 19 121
99 python (3.8) bocadillo (0.18) 17 601
100 ruby (2.6) hanami (1.3) 17 205
101 rust (1.4) iron (0.6) 17 064
102 javascript (12.13) iotjs-express (0.0) 16 985
103 javascript (12.13) restify (8.5) 16 738
104 swift (5.1) kitura (2.8) 16 396
105 swift (5.1) kitura-nio (2.8) 15 781
106 ruby (2.6) sinatra (2.0) 15 334
107 python (3.8) sanic (19.9) 15 092
108 java (8) micronaut (1.2) 14 755
109 java (8) spring-framework (5.2) 14 116
110 php (7.4) spiral (2.4) 14 107
111 javascript (12.13) hapi (18.4) 12 889
112 javascript (12.13) moleculer (0.13) 12 728
113 ruby (2.6) grape (1.2) 11 839
114 javascript (12.13) turbo_polka (0.3) 10 462
115 python (3.8) quart (0.10) 10 015
116 go (1.13) gramework (1.7) 9 038
117 python (3.8) tornado (6.0) 8 625
118 fsharp (7.3) suave (2.5) 8 551
119 python (3.8) django (3.0) 8 053
120 crystal (0.31) onyx (0.5) 7 568
121 python (3.8) cherrypy (18.5) 7 372
122 python (3.8) masonite (2.2) 5 869
123 ruby (2.6) rails (6.0) 3 368
124 swift (5.1) swifter (1.4) 3 305
125 julia (1.3) merly (0.2) 3 274
126 python (3.8) cyclone (1.3) 2 211
127 python (3.8) klein (19.6) 1 452
128 python (3.8) nameko (2.12) 1 241
129 javascript (12.13) foxify (0.1) 1 019
130 perl (5.30) dancer2 (2.0) 896

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

2vg avatar adam12 avatar amscotti avatar an-tao avatar appleboy avatar audy avatar dalisoft avatar david-m-s avatar dependabot-preview[bot] avatar dependabot[bot] avatar dependencies[bot] avatar depfu[bot] avatar georgeu2000 avatar gqcn avatar greed2411 avatar kelvinst avatar kiliankoe avatar lukeed avatar ohler55 avatar paulcsmith avatar petersonfs avatar pyup-bot avatar renovate[bot] avatar stakach avatar tanner0101 avatar tbrand avatar vardius avatar waghanza avatar yurunsoft avatar zhangkaizhao 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.