Giter VIP home page Giter VIP logo

vardius / 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.7 MB

Which is the fastest web framework?

License: MIT License

Ruby 5.90% JavaScript 1.88% Crystal 11.54% Go 3.64% Rust 0.70% Elixir 4.13% Swift 1.33% Python 7.02% C# 0.42% Scala 0.84% Objective-C 0.84% Nim 0.46% CMake 6.41% C++ 1.50% Java 1.47% Lua 0.01% PHP 47.72% Dockerfile 2.91% C 1.11% 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-01-31 ℹ️

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) 166 221
2 javascript (13.7) sifrr (0.0) 163 590
3 javascript (13.7) nanoexpress (1.1) 158 114
4 java (8) rapidoid (5.5) 142 882
5 crystal (0.31) router.cr (0.2) 142 813
6 crystal (0.31) toro (0.4) 140 181
7 crystal (0.31) raze (0.3) 138 920
8 crystal (0.31) spider-gazelle (2.3) 135 498
9 nim (1.0) jester (0.4) 132 496
10 go (1.13) fasthttp (1.8) 131 711
11 crystal (0.31) kemal (0.26) 131 348
12 go (1.13) fasthttprouter (0.1) 127 798
13 go (1.13) router (0.6) 127 760
14 crystal (0.31) grip (0.26) 127 575
15 go (1.13) atreugo (10.3) 127 135
16 go (1.13) fiber (1.0) 125 622
17 crystal (0.31) amber (0.3) 125 602
18 go (1.13) gorouter-fasthttp (4.4) 123 940
19 c (11) agoo-c (0.7) 123 085
20 crystal (0.31) orion (2.1) 121 881
21 php (7.4) workerman (3.5) 119 334
22 java (8) act (1.8) 101 954
23 ruby (2.6) agoo (2.12) 100 811
24 go (1.13) rte (0.0) 92 434
25 go (1.13) gorouter (4.4) 87 009
26 go (1.13) chi (4.0) 86 879
27 javascript (13.7) polkadot (1.0) 86 410
28 csharp (7.3) aspnetcore (3.0) 85 906
29 go (1.13) kami (2.2) 85 869
30 go (1.13) aero (1.3) 85 413
31 go (1.13) violetear (7.0) 84 011
32 go (1.13) echo (4.1) 83 631
33 go (1.13) goroute (0.0) 83 197
34 cpp (11) drogon (1.0) 82 977
35 javascript (13.7) 0http (2.2) 82 167
36 go (1.13) gorilla-mux (1.7) 81 559
37 go (1.13) beego (1.12) 80 798
38 go (1.13) gin (1.5) 79 792
39 javascript (13.7) restana (4.0) 78 664
40 go (1.13) webgo (3.0) 78 577
41 javascript (13.7) polka (0.5) 75 697
42 swift (5.1) perfect (3.1) 74 197
43 javascript (13.7) rayo (1.3) 73 962
44 go (1.13) air (0.14) 70 929
45 python (3.8) falcon (2.0) 69 881
46 go (1.13) gf (1.11) 67 876
47 c (11) kore (3.3) 65 860
48 javascript (13.7) muneem (2.4) 65 529
49 javascript (13.7) fastify (2.11) 60 814
50 javascript (13.7) foxify (0.1) 60 562
51 kotlin (1.3) ktor (1.2) 58 329
52 php (7.4) one (1.9) 58 060
53 java (8) javalin (3.5) 58 015
54 python (3.8) bottle (0.12) 57 767
55 scala (2.12) akkahttp (10.1) 56 140
56 javascript (13.7) koa (2.11) 54 454
57 go (1.13) mars (1.0) 54 382
58 python (3.8) asgineer (0.7) 54 061
59 clojure (1.10) coast (1.0) 53 775
60 javascript (13.7) iotjs-express (0.0) 53 327
61 python (3.8) blacksheep (0.2) 49 434
62 java (8) spring-boot (2.1) 49 367
63 swift (5.1) vapor (3.3) 49 084
64 swift (5.1) kitura-nio (2.8) 49 029
65 swift (5.1) kitura (2.8) 48 556
66 javascript (13.7) express (4.17) 47 564
67 php (7.4) hyperf (1.0) 47 174
68 python (3.8) pyramid (1.1) 46 588
69 rust (1.41) nickel (0.11) 46 267
70 java (8) micronaut (1.2) 46 249
71 python (3.8) hug (2.6) 45 945
72 python (3.8) starlette (0.13) 45 938
73 rust (1.41) gotham (0.4) 44 185
74 cpp (11) evhtp (1.2) 44 071
75 php (7.4) imi (1.0) 41 351
76 php (7.4) sw-fw-less (preview) 40 826
77 scala (2.12) http4s (0.18) 39 620
78 ruby (2.6) roda (3.28) 39 077
79 ruby (2.6) syro (3.1) 38 705
80 javascript (13.7) hapi (19.0) 38 015
81 javascript (13.7) restify (8.5) 36 301
82 php (7.4) swoft (2.0) 35 322
83 ruby (2.6) cuba (3.9) 34 858
84 python (3.8) responder (2.0) 30 378
85 ruby (2.6) rack-routing (0.0) 29 324
86 python (3.8) fastapi (0.47) 29 083
87 javascript (13.7) moleculer (0.13) 28 822
88 crystal (0.31) lucky (0.18) 27 195
89 python (3.8) aiohttp (3.6) 26 904
90 fsharp (7.3) suave (2.5) 26 727
91 python (3.8) molten (0.27) 26 426
92 ruby (2.6) camping (2.1) 26 064
93 python (3.8) clastic (19.9) 25 805
94 python (3.8) flask (1.1) 24 187
95 python (3.8) masonite (2.3) 23 688
96 java (8) spring-framework (5.2) 23 576
97 crystal (0.31) athena (0.7) 23 160
98 javascript (13.7) turbo_polka (0.3) 22 711
99 ruby (2.6) flame (4.18) 22 378
100 python (3.8) sanic (19.12) 21 409
101 ruby (2.6) plezi (0.16) 20 553
102 python (3.8) emmett (2.0.0a1) 20 536
103 rust (1.41) iron (0.6) 18 681
104 ruby (2.6) hanami (1.3) 18 028
105 php (7.4) spiral (2.4) 17 145
106 ruby (2.6) sinatra (2.0) 16 341
107 python (3.8) quart (0.10) 13 328
108 ruby (2.6) grape (1.3) 13 099
109 swift (5.1) swifter (1.4) 11 001
110 python (3.8) tornado (6.0) 10 438
111 go (1.13) gramework (1.7) 10 051
112 python (3.8) cherrypy (18.5) 9 250
113 python (3.8) django (3.0) 8 989
114 php (7.4) ubiquity (2.3) 8 866
115 php (7.4) one-fpm (1.9) 7 730
116 php (7.4) phalcon (4.0) 7 305
117 php (7.4) hamlet (3.2) 7 106
118 crystal (0.31) onyx (0.5) 4 921
119 php (7.4) slim (4.4) 4 500
120 julia (1.3) merly (0.2) 4 439
121 php (7.4) lumen (6.3) 4 194
122 ruby (2.6) rails (6.0) 3 585
123 php (7.4) zend-expressive (3.2) 3 483
124 php (7.4) symfony (4.3) 3 405
125 perl (5.3) dancer2 (2.0) 3 303
126 python (3.8) cyclone (1.3) 2 394
127 php (7.4) zend-framework (3.1) 1 889
128 python (3.8) nameko (2.12) 1 544
129 python (3.8) klein (19.6) 1 509
130 php (7.4) basicphp (0.9) 1 330
131 php (7.4) laravel (6.12) 408

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

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.