Explore by language

javascript web framework benchmarks

Benchmark results for 69 javascript web frameworks, measured with zrk at concurrency 64, 256, 512. Fastest at concurrency 64: morojs-engine with 281 498 requests per second.

Compare throughput and latency together. These measurements describe a specific workload and test environment; performance in your application may differ.

Concurrency 64

javascript frameworks at concurrency 64, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 morojs-engine 1.1 281 498 0.21 ms 0.47 ms 0
2 morojs 1.8 279 251 0.21 ms 0.53 ms 0
3 uwebsockets 20.71 258 863 0.22 ms 0.59 ms 0
4 fulmine.js 5.21 258 434 0.24 ms 0.59 ms 0
5 sifrr 0 214 306 0.28 ms 0.74 ms 0
6 ultimate-express 2.2 206 646 0.35 ms 1.00 ms 0
7 elysia-bun 1.4 199 540 0.31 ms 0.68 ms 0
8 mesh 0.8 192 510 0.34 ms 0.80 ms 0
9 routejs-uwebsocket 3 176 564 0.35 ms 0.89 ms 0
10 morojs-uws 1.8 176 414 0.36 ms 0.85 ms 0
11 ignisia 0.2 166 833 0.37 ms 0.78 ms 0
12 vixeny-deno 0.1 164 747 0.40 ms 0.54 ms 0
13 bun 1.2.5 164 152 0.38 ms 0.77 ms 0
14 nifra-bun 2.14 162 346 0.38 ms 0.73 ms 0
15 hono-deno 4.13 161 714 0.39 ms 0.59 ms 0
16 nhttp 2 154 976 0.41 ms 0.56 ms 0
17 fast 6 152 068 0.42 ms 0.58 ms 0
18 vixeny-bun 0.1 150 523 0.40 ms 0.90 ms 0
19 spliffy 1.4 146 563 0.52 ms 1.13 ms 0
20 0http-bun 1.3 140 531 0.44 ms 0.95 ms 0
21 bunicorn 0 120 997 0.51 ms 1.07 ms 0
22 hyper-express 7 116 034 0.52 ms 1.37 ms 0
23 polkadot 1 108 790 0.56 ms 1.16 ms 0
24 low-http-server 4.2 106 805 0.59 ms 1.36 ms 0
25 blaze-bun 4.4 105 283 0.63 ms 1.32 ms 0
26 0http 5.1 101 788 0.62 ms 1.22 ms 0
27 restana 6.1 91 671 0.73 ms 1.37 ms 0
28 routejs 3 83 766 0.72 ms 1.46 ms 0
29 pxe 1 83 682 0.68 ms 1.75 ms 0
30 polka 0.5 83 655 0.74 ms 1.48 ms 0
31 rayo 1.6 83 590 0.75 ms 1.50 ms 0
32 h3 1.15 82 722 0.75 ms 1.42 ms 0
33 fastify 5.12 80 034 0.76 ms 1.52 ms 0
34 hono 4.13 75 348 0.83 ms 1.33 ms 0
35 brahma-firelight 1.5 75 158 0.66 ms 3.59 ms 0
36 oak-deno 17.1.3 74 404 0.86 ms 1.34 ms 0
37 hono-node 4.13 71 036 0.90 ms 1.50 ms 0
38 muneem 2.4 68 150 0.93 ms 1.62 ms 0
39 adonisjs-http 9 66 780 0.95 ms 1.90 ms 0
40 nestjs-fastify 12 62 254 1.02 ms 1.71 ms 0
41 fyrejet 4 62 069 1.02 ms 2.76 ms 0
42 iotjs-express 0 60 136 1.10 ms 2.20 ms 0
43 blaze-node 4.4 59 673 1.04 ms 2.08 ms 0
44 foxify 0.1 59 478 1.08 ms 1.60 ms 0
45 turbo_polka 0.3 56 636 1.12 ms 1.55 ms 0
46 elysia-node 1.4 55 290 1.17 ms 2.00 ms 0
47 koa 3.1 54 419 1.15 ms 1.96 ms 0
48 fastify-bun 5.12 53 990 1.15 ms 1.88 ms 0
49 express 5.2 48 207 1.28 ms 2.10 ms 0
50 moleculer 0.15 46 855 1.33 ms 2.11 ms 0
51 nifra-node 2.14 45 483 1.42 ms 2.46 ms 0
52 adonisjs-slim 7 43 918 1.44 ms 2.20 ms 0
53 feathersjs 5 43 137 1.54 ms 2.16 ms 0
54 express-bun 5.2 42 148 1.47 ms 2.28 ms 0
55 tinyhttp 3 42 110 1.16 ms 18.21 ms 0
56 oak-bun 17.1 40 942 1.52 ms 2.13 ms 0
57 restify 11.1 40 265 1.48 ms 2.52 ms 0
58 durian.js-fastify 12 40 167 0.33 ms 14.10 ms 0
59 koa-bun 3.1 38 903 1.59 ms 2.37 ms 0
60 hapi 21.4 36 125 1.81 ms 3.51 ms 0
61 chubbyts-uwebsockets 3 32 439 1.88 ms 13.43 ms 0
62 nestjs-express 12 32 334 1.95 ms 3.63 ms 0
63 durian.js 12 32 265 0.46 ms 15.98 ms 0
64 express-deno 5.2 29 330 1.99 ms 7.31 ms 0
65 chubbyts 3 23 049 3.16 ms 9.75 ms 0
66 sails 1.5 8 102 7.32 ms 12.62 ms 0
67 nextjs 16.3 4 021 15.15 ms 36.30 ms 0
68 totaljs 0 3 876 5334.87 ms 5337.37 ms 0
69 yume-server 0 3 117 5.42 ms 14.05 ms 0

Concurrency 256

javascript frameworks at concurrency 256, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 morojs-engine 1.1 259 617 0.99 ms 1.20 ms 0
2 morojs 1.8 259 418 0.97 ms 1.17 ms 0
3 uwebsockets 20.71 242 223 1.06 ms 1.27 ms 0
4 fulmine.js 5.21 241 972 1.04 ms 1.35 ms 0
5 sifrr 0 200 985 1.26 ms 1.45 ms 0
6 elysia-bun 1.4 198 320 1.27 ms 1.71 ms 0
7 ultimate-express 2.2 193 882 1.51 ms 2.95 ms 0
8 mesh 0.8 181 445 1.40 ms 1.83 ms 0
9 routejs-uwebsocket 3 167 425 1.55 ms 1.94 ms 0
10 morojs-uws 1.8 166 316 1.58 ms 1.93 ms 0
11 ignisia 0.2 163 835 1.51 ms 2.15 ms 0
12 bun 1.2.5 162 334 1.56 ms 2.08 ms 0
13 nifra-bun 2.14 159 908 1.61 ms 2.21 ms 0
14 vixeny-deno 0.1 154 122 1.68 ms 1.93 ms 0
15 hono-deno 4.13 150 627 1.70 ms 1.96 ms 0
16 vixeny-bun 0.1 148 323 1.72 ms 2.44 ms 0
17 nhttp 2 145 065 1.79 ms 2.08 ms 0
18 fast 6 143 278 1.80 ms 2.11 ms 0
19 0http-bun 1.3 137 461 1.74 ms 4.43 ms 0
20 spliffy 1.4 137 411 2.30 ms 2.75 ms 0
21 bunicorn 0 121 355 2.11 ms 2.76 ms 0
22 hyper-express 7 112 136 2.24 ms 2.99 ms 0
23 blaze-bun 4.4 105 144 2.47 ms 3.51 ms 0
24 polkadot 1 104 247 2.57 ms 3.08 ms 0
25 low-http-server 4.2 104 124 2.46 ms 2.99 ms 0
26 0http 5.1 98 375 2.62 ms 3.31 ms 0
27 restana 6.1 88 993 2.88 ms 3.65 ms 0
28 h3 1.15 80 983 3.20 ms 4.19 ms 0
29 polka 0.5 80 912 3.25 ms 4.01 ms 0
30 routejs 3 80 654 3.17 ms 3.84 ms 0
31 pxe 1 80 041 3.00 ms 13.52 ms 0
32 rayo 1.6 79 626 3.24 ms 4.01 ms 0
33 fastify 5.12 76 363 3.42 ms 4.20 ms 0
34 brahma-firelight 1.5 75 783 3.29 ms 6.52 ms 0
35 oak-deno 17.1.3 72 494 3.34 ms 4.60 ms 0
36 hono 4.13 70 497 3.58 ms 4.63 ms 0
37 hono-node 4.13 67 940 3.84 ms 4.64 ms 0
38 muneem 2.4 66 885 3.90 ms 4.58 ms 0
39 adonisjs-http 9 64 587 4.00 ms 4.77 ms 0
40 fyrejet 4 61 626 4.17 ms 6.92 ms 0
41 nestjs-fastify 12 60 970 4.27 ms 5.30 ms 0
42 foxify 0.1 57 751 4.49 ms 5.17 ms 0
43 blaze-node 4.4 57 699 4.46 ms 5.49 ms 0
44 iotjs-express 0 56 948 4.64 ms 5.81 ms 0
45 elysia-node 1.4 53 937 4.73 ms 5.70 ms 0
46 koa 3.1 52 765 4.94 ms 5.81 ms 0
47 fastify-bun 5.12 50 058 5.01 ms 6.16 ms 0
48 turbo_polka 0.3 49 163 5.16 ms 6.26 ms 0
49 express 5.2 47 573 5.42 ms 6.39 ms 0
50 moleculer 0.15 47 371 5.46 ms 6.52 ms 0
51 durian.js-fastify 12 47 324 3.68 ms 22.10 ms 0
52 nifra-node 2.14 45 035 5.86 ms 6.95 ms 0
53 adonisjs-slim 7 44 105 5.76 ms 7.00 ms 0
54 feathersjs 5 42 278 6.06 ms 7.38 ms 0
55 tinyhttp 3 40 854 5.05 ms 32.47 ms 0
56 restify 11.1 39 609 6.52 ms 7.79 ms 0
57 oak-bun 17.1 39 402 6.34 ms 7.67 ms 0
58 express-bun 5.2 39 187 6.36 ms 7.76 ms 0
59 durian.js 12 38 834 5.19 ms 30.09 ms 0
60 koa-bun 3.1 37 219 6.68 ms 7.87 ms 0
61 hapi 21.4 35 573 7.54 ms 9.80 ms 0
62 chubbyts-uwebsockets 3 31 517 8.10 ms 26.35 ms 0
63 nestjs-express 12 31 327 8.32 ms 9.79 ms 0
64 express-deno 5.2 26 894 8.82 ms 18.08 ms 0
65 chubbyts 3 23 055 13.01 ms 19.82 ms 0
66 yume-server 0 11 089 4.57 ms 29.15 ms 0
67 sails 1.5 7 851 31.03 ms 48.57 ms 0
68 totaljs 0 7 648 6.13 ms 2677.78 ms 0
69 nextjs 16.3 4 443 53.57 ms 114.88 ms 0

Concurrency 512

javascript frameworks at concurrency 512, ranked on requests per second.
# Framework Requests / second P50 latency P99 latency HTTP errors
1 morojs 1.8 249 188 2.06 ms 2.28 ms 0
2 morojs-engine 1.1 249 010 2.04 ms 2.27 ms 0
3 uwebsockets 20.71 234 757 2.19 ms 2.47 ms 0
4 fulmine.js 5.21 233 929 2.18 ms 2.40 ms 0
5 sifrr 0 197 511 2.59 ms 2.82 ms 0
6 elysia-bun 1.4 196 511 2.60 ms 3.24 ms 0
7 ultimate-express 2.2 188 634 3.14 ms 4.82 ms 0
8 mesh 0.8 178 976 2.92 ms 3.35 ms 0
9 routejs-uwebsocket 3 165 824 3.09 ms 3.66 ms 0
10 morojs-uws 1.8 165 036 3.16 ms 3.53 ms 0
11 ignisia 0.2 163 774 3.08 ms 3.96 ms 0
12 bun 1.2.5 162 257 3.16 ms 3.79 ms 0
13 nifra-bun 2.14 159 822 3.12 ms 4.09 ms 0
14 vixeny-deno 0.1 152 387 3.35 ms 3.84 ms 0
15 hono-deno 4.13 149 020 3.41 ms 3.89 ms 0
16 vixeny-bun 0.1 147 927 3.39 ms 4.50 ms 0
17 nhttp 2 143 602 3.59 ms 4.05 ms 0
18 fast 6 142 007 3.56 ms 4.00 ms 0
19 0http-bun 1.3 136 785 3.64 ms 7.33 ms 0
20 spliffy 1.4 136 344 4.47 ms 5.35 ms 0
21 bunicorn 0 121 643 4.06 ms 5.28 ms 0
22 hyper-express 7 111 577 4.53 ms 5.73 ms 0
23 blaze-bun 4.4 105 445 4.95 ms 6.53 ms 0
24 polkadot 1 104 219 4.99 ms 6.11 ms 0
25 low-http-server 4.2 104 177 4.82 ms 5.82 ms 0
26 0http 5.1 100 310 5.13 ms 6.19 ms 0
27 restana 6.1 88 361 5.73 ms 7.23 ms 0
28 h3 1.15 81 809 6.20 ms 8.26 ms 0
29 pxe 1 80 908 5.88 ms 17.23 ms 0
30 polka 0.5 80 038 6.31 ms 7.48 ms 0
31 routejs 3 79 513 6.45 ms 7.51 ms 0
32 rayo 1.6 79 194 6.39 ms 7.53 ms 0
33 brahma-firelight 1.5 76 952 6.55 ms 11.71 ms 0
34 fastify 5.12 76 284 6.72 ms 7.64 ms 0
35 oak-deno 17.1.3 73 139 6.66 ms 8.93 ms 0
36 hono 4.13 69 603 7.27 ms 8.51 ms 0
37 hono-node 4.13 68 183 7.45 ms 8.81 ms 0
38 muneem 2.4 66 060 7.77 ms 10.91 ms 0
39 adonisjs-http 9 63 869 7.98 ms 9.23 ms 0
40 fyrejet 4 62 092 8.11 ms 12.43 ms 0
41 nestjs-fastify 12 59 427 8.58 ms 10.04 ms 0
42 blaze-node 4.4 57 895 8.83 ms 10.50 ms 0
43 foxify 0.1 57 408 8.96 ms 10.13 ms 0
44 iotjs-express 0 56 800 9.06 ms 12.62 ms 0
45 koa 3.1 52 528 9.65 ms 11.32 ms 0
46 elysia-node 1.4 52 356 9.79 ms 12.53 ms 0
47 fastify-bun 5.12 49 342 10.26 ms 11.88 ms 0
48 turbo_polka 0.3 47 808 10.56 ms 12.08 ms 0
49 durian.js-fastify 12 47 623 10.29 ms 81.95 ms 0
50 moleculer 0.15 47 559 10.70 ms 11.94 ms 0
51 express 5.2 46 680 10.96 ms 12.80 ms 0
52 nifra-node 2.14 44 223 11.40 ms 15.59 ms 0
53 adonisjs-slim 7 43 282 11.73 ms 14.05 ms 0
54 feathersjs 5 41 761 12.24 ms 14.01 ms 0
55 tinyhttp 3 40 297 10.22 ms 40.41 ms 0
56 restify 11.1 39 608 12.92 ms 14.41 ms 0
57 durian.js 12 39 546 12.62 ms 78.05 ms 0
58 express-bun 5.2 39 368 12.97 ms 14.74 ms 0
59 oak-bun 17.1 38 914 13.06 ms 14.77 ms 0
60 koa-bun 3.1 37 160 13.77 ms 15.40 ms 0
61 hapi 21.4 35 195 14.88 ms 18.50 ms 0
62 chubbyts-uwebsockets 3 31 302 16.21 ms 40.10 ms 0
63 nestjs-express 12 31 148 16.45 ms 18.84 ms 0
64 express-deno 5.2 25 978 14.25 ms 29.29 ms 0
65 chubbyts 3 22 788 25.96 ms 35.80 ms 0
66 yume-server 0 9 549 9.72 ms 64.00 ms 0
67 sails 1.5 7 761 43.24 ms 60.76 ms 0
68 totaljs 0 7 648 8.61 ms 19.68 ms 0
69 nextjs 16.3 4 482 104.71 ms 169.19 ms 0