Skip to content

antidot-framework/web-frameworks

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Which is the fastest?

CI

Chat with US

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

  • Ruby 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

ℹ️ℹ️ℹ️ℹ️ℹ️

⚠️ On OSX you need docker-machine to use docker containerization

brew install docker-machine
docker-machine create default
eval $(docker-machine env default)

ℹ️ℹ️ℹ️ℹ️ℹ️

Usage

... to be documented ...

feel free to create an issue if you want to try this project

Results

ℹ️ Updated on 2021-01-12 ℹ️

Benchmarking with wrk

  • Threads : 8
  • Timeout : 8
  • Duration : 15s (seconds)

ℹ️ Sorted by max req/s on concurrency 64 ℹ️

Language Framework Speed (64) Speed (256) Speed (512)
1 java (11) activej (3.0) 174 565.75 215 212.42 220 533.33
2 php (7.4) workerman (4.0) 149 474.56 182 197.29 184 381.58
3 php (7.4) mark (1.1) 123 303.60 135 644.48 136 855.47
4 go (1.15) fiber (2.3) 122 010.02 129 704.20 128 884.87
5 go (1.15) gearbox (1.1) 121 289.64 124 518.26 124 101.14
6 go (1.15) atreugo (11.6) 118 216.22 128 219.57 127 675.62
7 nim (1.4) httpbeast (0.2) 117 608.57 146 009.40 149 333.10
8 go (1.15) fasthttp (1.19) 116 552.92 129 788.59 130 066.37
9 go (1.15) gorouter-fasthttp (4.4) 116 238.66 128 879.43 127 957.80
10 go (1.15) router (1.3) 116 171.34 128 259.76 128 064.90
11 nim (1.4) whip (0.2) 114 055.92 142 111.15 144 922.77
12 go (1.15) webgo (4.1) 112 476.43 112 096.81 115 324.35
13 java (11) undertow (2.2) 111 986.69 136 832.04 139 167.96
14 javascript (14.15) nanoexpress (2.4) 110 559.15 142 186.32 145 380.54
15 java (11) jooby (2.9) 110 026.65 137 214.78 141 795.02
16 java (11) rapidoid (5.5) 109 920.25 134 886.85 137 359.38
17 kotlin (1.4) kooby (2.9) 109 325.38 135 888.02 140 650.55
18 javascript (14.15) sifrr (0.0) 108 493.71 138 407.47 140 971.89
19 go (1.15) gorilla-mux (1.8) 108 389.02 104 763.11 109 389.18
20 java (11) light-4j (2.0) 107 439.48 134 350.83 138 649.20
21 nim (1.4) jester (0.5) 103 960.08 129 315.23 132 733.83
22 crystal (0.35) spider-gazelle (3.4) 102 138.61 119 737.39 120 048.68
23 crystal (0.35) toro (0.4) 98 121.89 120 395.37 121 114.13
24 crystal (0.35) router.cr (0.2) 97 947.14 120 372.30 121 130.91
25 java (11) act (1.9) 95 577.52 117 531.67 119 823.99
26 php (7.4) nano (0.0.9) 95 295.76 139 958.45 152 046.32
27 crystal (0.35) grip (4.0) 93 904.70 113 931.75 112 728.52
28 crystal (0.35) kemal (0.27) 92 639.94 112 264.51 112 881.53
29 crystal (0.35) amber (0.35) 90 768.45 107 013.22 106 483.12
30 crystal (0.35) athena (0.12) 83 325.23 94 078.78 88 766.66
31 javascript (14.15) naturaljs-router (0.1.1) 83 151.04 97 354.61 99 932.09
32 scala (2.13) akkahttp (10.1) 81 661.98 96 607.59 94 342.06
33 go (1.15) gf (1.15) 81 449.26 88 932.24 91 674.66
34 go (1.15) rte (0.0) 81 212.61 82 065.19 84 199.10
35 go (1.15) clevergo (0.5) 80 897.20 82 008.15 83 863.05
36 go (1.15) echo (4.1) 79 973.66 81 081.43 83 128.18
37 go (1.15) httprouter (1.3) 79 804.71 80 475.18 82 649.97
38 go (1.15) gorouter (4.5) 78 525.28 82 948.41 84 212.09
39 go (1.15) chi (1.5) 78 035.93 77 448.37 79 889.45
40 go (1.15) gin (1.6) 78 020.97 81 801.80 83 442.40
41 go (1.15) violetear (7.0) 77 378.20 77 586.79 79 618.80
42 csharp (8.0) aspnetcore (5.0) 75 770.06 88 452.75 91 014.46
43 cpp (11) drogon (1.2) 75 615.09 73 257.03 76 630.03
44 go (1.15) aero (1.3) 75 147.73 74 618.90 76 890.70
45 fsharp (5.0) frank (6.2) 75 070.76 88 292.89 91 254.49
46 go (1.15) kami (2.2) 74 910.37 79 215.94 79 768.08
47 fsharp (5.0) falco (3.0) 74 328.91 86 717.89 89 461.59
48 php (7.4) simps (1.0) 74 237.07 115 427.51 129 030.08
49 go (1.15) goroute (0.0) 73 657.82 71 818.46 74 903.90
50 python (3.9) falcon (2.0) 73 378.87 81 092.93 82 463.23
51 javascript (14.15) low-http-server (2.1) 72 923.69 79 633.57 79 769.04
52 java (11) restheart (5.1) 72 210.81 72 038.53 66 562.03
53 go (1.15) beego (1.12) 71 735.71 74 788.65 76 623.65
54 go (1.15) air (0.21) 64 950.11 63 455.70 66 017.04
55 csharp (8.0) carter (5.2) 64 563.76 72 056.71 72 523.15
56 go (1.15) goyave (3.6) 62 946.27 62 781.70 65 482.78
57 fsharp (5.0) saturn (0.14) 62 219.61 68 005.62 67 334.50
58 javascript (14.15) polkadot (1.0) 61 972.58 67 894.81 68 626.77
59 java (11) spring (2.4) 60 057.03 63 485.78 64 028.32
60 javascript (14.15) 0http (3.0) 59 624.69 65 281.89 67 552.24
61 scala (2.13) finch (0.32) 59 524.15 66 134.61 66 094.63
62 c (11) agoo-c (0.7) 57 177.52 119 724.02 141 341.03
63 javascript (14.15) polka (0.5) 56 315.40 61 528.76 60 523.26
64 javascript (14.15) restana (4.7) 56 161.99 63 596.85 64 368.53
65 javascript (14.15) rayo (1.3) 55 601.01 60 789.91 59 236.72
66 javascript (14.15) fastify (3.7) 55 561.10 60 667.82 59 640.99
67 php (7.4) one (2.2) 55 448.32 66 725.65 70 912.36
68 ruby (2.7) agoo (2.14) 54 982.65 75 351.72 83 956.33
69 elixir (1.11) cowboy_stream (2.8) 54 231.86 57 463.89 55 333.83
70 javascript (14.15) muneem (2.4) 54 178.35 59 463.55 57 053.71
71 java (11) javalin (3.9) 53 593.32 57 549.60 57 478.44
72 python (3.9) pyramid (1.1) 53 204.25 58 217.38 58 619.60
73 kotlin (1.4) http4k (3.275) 52 491.38 60 984.45 63 139.53
74 swift (5.3) perfect (3.1) 51 978.74 57 226.16 64 415.18
75 kotlin (1.4) ktor (1.4) 51 031.47 66 382.89 68 915.04
76 fsharp (5.0) websharper (4.7) 50 635.48 57 209.90 57 663.86
77 rust (1.49) actix (3.3) 49 790.97 47 982.24 48 838.02
78 java (11) spark (2.9) 49 707.71 54 470.35 55 452.41
79 java (11) micronaut (1.2) 48 940.98 55 674.56 56 058.67
80 javascript (14.15) nestjs-fastify (7.6) 47 275.54 52 222.35 50 675.63
81 haskell (8.8) scotty (0.12) 46 304.07 49 978.90 51 570.65
82 go (1.15) mars (1.0) 46 208.21 46 625.75 49 623.08
83 python (3.9) asgineer (0.8) 45 449.20 51 357.27 51 938.19
84 javascript (14.15) foxify (0.1) 45 421.87 49 150.11 47 390.07
85 javascript (14.15) iotjs-express (0.0) 44 988.79 48 370.87 47 435.23
86 clojure (1.1) coast (1.0) 44 944.16 45 358.91 45 620.82
87 php (7.4) comet (0.8) 44 505.07 48 283.44 49 030.90
88 r (4.0) rserve (1.7) 43 606.65 31 036.06 33 630.35
89 python (3.9) bottle (0.12) 41 952.18 45 586.75 46 502.05
90 javascript (14.15) koa (2.13) 41 639.93 43 779.26 43 168.43
91 javascript (14.15) fyrejet-api (2.1) 37 306.84 39 863.93 39 405.58
92 elixir (1.11) cowboy (2.8) 36 320.45 37 258.71 37 741.66
93 swift (5.3) vapor (4.37) 35 861.91 37 575.40 37 317.92
94 python (3.9) emmett (2.1) 35 390.05 41 703.59 42 352.29
95 php (7.4) chubbyphp-workerman (3.3) 35 390.00 37 415.72 37 731.77
96 javascript (14.15) moleculer (0.14) 35 368.12 36 098.18 34 929.33
97 javascript (14.15) hapi (20.0) 34 874.05 35 235.93 34 640.59
98 swift (5.3) kitura (2.9) 34 338.14 34 718.30 34 997.24
99 swift (5.3) kitura-nio (2.9) 34 283.32 35 108.33 34 727.86
100 php (7.4) siler-swoole (1.7) 34 201.59 50 493.06 52 417.68
101 rust (1.49) nickel (0.11) 33 492.58 32 720.21 32 692.21
102 scala (2.13) http4s (0.21) 33 422.27 38 303.93 38 303.27
103 java (11) jersey-grizzly2 (2.33) 33 207.56 37 604.53 37 262.65
104 java (11) jersey3-grizzly2 (3) 33 083.14 38 055.34 37 478.78
105 python (3.9) hug (2.6) 32 735.46 35 723.52 53 636.86
106 rust (1.49) gotham (0.5) 31 664.51 35 456.97 36 524.16
107 dart (2.10) aqueduct (3.3) 31 248.13 30 596.16 30 552.46
108 python (3.9) sanic (20.12) 30 897.85 35 305.04 35 481.74
109 fsharp (5.0) suave (2.6) 30 885.95 28 569.77 25 066.82
110 python (3.9) apidaora (0.28) 30 501.90 35 019.03 35 580.94
111 javascript (14.15) fyrejet-uwebsockets (2.1) 30 476.85 31 959.06 32 402.16
112 rust (1.49) salvo (0.3) 30 305.14 32 478.24 32 962.32
113 php (7.4) imi (1.2) 29 159.10 31 598.34 33 103.88
114 csharp (8.0) simplify.web (4.2) 29 027.74 32 047.81 31 962.65
115 javascript (14.15) restify (8.5) 28 646.13 30 382.35 29 562.41
116 python (3.9) blacksheep (0.3) 28 241.25 33 550.29 34 467.36
117 javascript (14.15) fyrejet (2.1) 28 092.60 29 456.08 28 836.14
118 cpp (11) evhtp (1.2) 27 869.19 29 023.13 28 682.46
119 elixir (1.11) plug (1.11) 26 897.82 29 198.05 28 615.72
120 python (3.9) responder (2.0) 26 690.53 31 526.14 31 765.47
121 python (3.9) index.py (0.15) 25 429.61 30 246.64 30 448.12
122 crystal (0.35) orion (3.0) 24 750.27 25 430.91 23 285.43
123 python (3.9) starlette (0.14) 24 482.88 29 351.53 29 823.57
124 scala (2.13) play (2.8) 24 307.33 27 469.59 27 585.58
125 elixir (1.11) phoenix (1.5) 24 177.11 26 384.16 25 406.12
126 python (3.9) clastic (19.9) 23 691.56 28 512.20 28 280.70
127 haskell (8.8) servant (0.17) 23 186.31 21 442.61 20 706.90
128 clojure (1.1) luminus (3.91) 22 175.84 21 473.60 21 044.55
129 fsharp (5.0) giraffe (4.1) 22 085.93 22 119.21 21 778.01
130 crystal (0.35) shivneri (0.16) 21 672.15 20 691.03 18 088.44
131 nim (1.4) mike (0.5) 20 694.52 20 316.36 20 920.66
132 python (3.9) molten (1.0) 19 171.51 22 470.67 22 256.49
133 javascript (14.15) turbo_polka (0.3) 18 998.54 18 488.85 16 939.61
134 python (3.9) aiohttp (3.7) 18 205.57 23 941.37 23 729.57
135 nim (1.4) akane (0.1) 17 728.92 15 724.90 14 710.38
136 ruby (2.7) hanami-api (0.1) 17 361.93 16 775.20 16 323.45
137 php (7.4) swoft (2.0) 17 103.60 20 768.75 21 321.24
138 python (3.9) masonite (2.3) 16 730.36 20 236.12 20 140.37
139 ruby (2.7) syro (3.2) 16 630.94 16 032.91 15 808.93
140 rust (1.49) iron (0.6) 16 312.74 16 476.66 16 538.40
141 php (7.4) yii-swoole (2.0) 16 239.21 19 334.42 19 696.69
142 nim (1.4) rosencrantz (0.4) 16 058.39 14 310.63 13 178.84
143 ruby (2.7) roda (3.39) 15 873.86 15 376.33 15 114.60
144 php (7.4) chubbyphp-swoole (3.3) 15 836.84 18 447.00 19 051.87
145 python (3.9) fastapi (0.63) 15 615.88 19 871.35 19 937.64
146 javascript (14.15) feathersjs (4.5) 15 560.31 17 834.27 15 433.56
147 go (1.15) macaron (1.4) 15 436.31 16 898.52 16 908.94
148 ruby (2.7) cuba (3.9) 15 374.91 14 895.28 14 605.50
149 php (7.4) sw-fw-less (preview) 15 329.82 17 914.00 18 101.62
150 php (7.4) slim-swoole (4.7) 15 304.49 17 780.06 17 822.33
151 javascript (14.15) express (4.17) 15 258.10 17 935.50 18 098.38
152 swift (5.3) swifter (1.5) 14 330.49 14 840.02 21 933.98
153 ruby (2.7) rack-routing (0.0) 14 133.58 13 742.82 13 492.15
154 java (11) struts2 (2.5) 13 832.82 14 161.71 14 173.95
155 ruby (2.7) rack_app (7.7) 13 601.26 13 114.49 12 964.91
156 ruby (2.7) camping (2.1) 13 192.30 12 786.74 12 611.12
157 java (11) blade (2.0) 12 974.32 15 814.99 14 518.10
158 python (3.9) flask (1.1) 12 877.27 15 998.59 16 307.10
159 javascript (14.15) nestjs-express (7.6) 11 568.54 14 037.90 11 298.97
160 dart (2.10) start (0.4) 11 463.13 11 182.60 10 736.92
161 go (1.15) tango (0.6) 11 416.08 11 655.88 11 704.99
162 php (7.4) sunrise-router-roadrunner (2.5) 10 152.34 10 401.25 10 494.49
163 php (7.4) chubbyphp-roadrunner (3.3) 10 046.07 10 308.06 10 437.20
164 go (1.15) gramework (1.7) 9 767.86 9 963.34 9 944.11
165 php (7.4) slim-roadrunner (4.7) 9 724.11 9 895.35 10 040.32
166 php (7.4) spiral (2.7) 9 580.39 9 746.84 9 808.15
167 python (3.9) cherrypy (18.6) 9 263.11 9 216.43 9 097.26
168 ruby (2.7) sinatra (2.1) 9 117.62 8 849.86 8 815.09
169 ruby (2.7) grape (1.5) 8 688.31 8 421.53 8 330.51
170 python (3.9) guillotina (6.1) 8 384.92 8 314.69 7 973.24
171 python (3.9) quart (0.14) 7 547.84 7 130.20 6 831.64
172 pony (0.38) jennet (0.1) 7 495.70 13 610.00 12 690.05
173 php (7.4) phalcon (4.1) 6 793.56 6 743.46 6 668.21
174 php (7.4) siler (1.7) 6 647.40 6 565.52 6 488.58
175 php (7.4) basicphp (0.9) 6 609.44 6 536.17 6 414.41
176 php (7.4) fastsitephp (1.4) 6 427.77 6 333.42 6 216.55
177 python (3.9) tornado (6.1) 6 360.65 6 791.21 6 479.07
178 php (7.4) ice (1.5) 6 289.60 6 203.37 6 180.86
179 clojure (1.1) yada (1.2) 5 983.65 6 662.07 6 682.56
180 python (3.9) django (3.1) 5 807.21 5 798.11 5 802.97
181 ruby (2.7) flame (4.18) 5 751.98 5 652.27 5 655.33
182 php (7.4) ubiquity (2.3) 5 282.16 5 233.15 5 143.90
183 ruby (2.7) hanami (1.3) 5 252.23 5 201.14 5 212.32
184 python (3.9) tonberry (0.2) 5 046.75 4 949.61 4 615.63
185 php (7.4) one-fpm (2.2) 4 723.89 4 677.85 4 607.86
186 php (7.4) hamlet (3.2) 4 487.32 4 463.99 4 392.84
187 php (7.4) slim (4.7) 4 458.19 4 429.21 4 442.07
188 javascript (14.15) sails (1.4) 4 254.68 4 266.94 4 145.23
189 v (0.1) vape (0.3) 4 115.22 2 563.96 2 477.99
190 php (7.4) bearframework (1.3) 4 010.09 3 928.93 3 940.01
191 php (7.4) nette (3.1) 3 887.04 3 875.37 3 891.25
192 php (7.4) sunrise-router (2.5) 3 853.45 3 783.10 3 794.64
193 php (7.4) lumen (8.1) 3 853.04 3 858.63 3 878.46
194 julia (1.6) merly (0.2) 3 512.21 6 801.44 5 744.13
195 php (7.4) chubbyphp (3.3) 3 429.07 3 387.36 3 390.18
196 php (7.4) symfony (5.2) 2 979.67 2 989.54 3 000.69
197 ruby (2.7) rails (6.1) 2 826.37 2 801.23 2 810.61
198 php (7.4) yii (2.0) 2 634.53 2 619.67 2 636.06
199 php (7.4) sunrise-router-annotations (2.5) 2 316.40 2 316.42 2 332.20
200 ruby (2.7) pakyow (1.0) 2 056.60 2 439.87 2 418.59
201 r (4.0) httpuv (1.5) 1 930.97 1 850.25 1 775.87
202 r (4.0) restrserve (0.3) 1 884.10 1 832.96 1 850.29
203 php (7.4) mezzio (3.2) 1 875.12 1 876.33 1 889.35
204 crystal (0.35) runcobo (1.0) 1 742.71 1 751.54 1 779.37
205 python (3.9) cyclone (1.3) 1 664.10 1 641.78 1 624.40
206 php (7.4) laminas (3.2) 1 601.39 1 619.03 1 617.55
207 python (3.9) klein (20.6) 1 492.69 1 507.43 1 476.20
208 perl (5.32) dancer2 (0.3) 1 205.91 644.19 747.69
209 php (7.4) codeigniter4 (4.0) 1 107.60 1 129.13 1 127.47
210 python (3.9) nameko (2.13) 1 047.54 1 022.49 1 015.30
211 python (3.9) django-ninja (0.9) 909.49 1 626.93 1 665.68
212 r (4.0) plumber (1.0) 287.30 303.41 -93.04
213 cpp (11) nawa (0.6) 248.26 NaN NaN
214 php (7.4) laravel (7.27) 130.42 25.10 0.00

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

About

Which is the fastest web framework?

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 54.4%
  • Ruby 7.1%
  • Python 5.6%
  • CMake 4.0%
  • Crystal 3.7%
  • Java 3.6%
  • Other 21.6%