diff --git a/README.md b/README.md index 4bd622e6..c67a9a82 100644 --- a/README.md +++ b/README.md @@ -68,37 +68,37 @@ node ./benchmark [arguments (optional)] # Benchmarks * __Machine:__ linux x64 | 4 vCPUs | 15.6GB Mem -* __Node:__ `v20.18.1` -* __Run:__ Mon Jan 27 2025 01:49:06 GMT+0000 (Coordinated Universal Time) +* __Node:__ `v20.18.2` +* __Run:__ Mon Feb 03 2025 01:49:03 GMT+0000 (Coordinated Universal Time) * __Method:__ `autocannon -c 100 -d 40 -p 10 localhost:3000` (two rounds; one to warm-up, one to measure) | | Version | Router | Requests/s | Latency (ms) | Throughput/Mb | | :-- | --: | --: | :-: | --: | --: | -| fastify | 5.2.1 | ✓ | 46908.0 | 20.82 | 8.41 | -| bare | v20.18.1 | ✗ | 46878.4 | 20.83 | 8.36 | -| polkadot | 1.0.0 | ✗ | 46420.0 | 21.05 | 8.28 | -| polka | 0.5.2 | ✓ | 46360.0 | 21.06 | 8.27 | -| connect | 3.7.0 | ✗ | 45918.4 | 21.25 | 8.19 | -| rayo | 1.4.6 | ✓ | 45832.8 | 21.30 | 8.17 | -| 0http | 4.1.0 | ✓ | 45500.8 | 21.48 | 8.11 | -| server-base | 7.1.32 | ✗ | 45240.0 | 21.60 | 8.07 | -| server-base-router | 7.1.32 | ✓ | 44954.4 | 21.78 | 8.02 | -| micro | 10.0.1 | ✗ | 43986.4 | 22.24 | 7.84 | -| h3-router | 1.14.0 | ✓ | 43740.8 | 22.37 | 7.80 | -| h3 | 1.14.0 | ✗ | 43380.8 | 22.55 | 7.74 | -| connect-router | 1.3.8 | ✓ | 42936.8 | 22.77 | 7.66 | -| micro-route | 2.5.0 | ✓ | 42004.0 | 23.34 | 7.49 | -| adonisjs | 7.4.0 | ✓ | 41248.8 | 23.74 | 7.36 | -| hono | 4.6.19 | ✓ | 39801.6 | 24.61 | 6.53 | -| restana | v5.0.0 | ✓ | 38883.2 | 25.22 | 6.93 | -| koa | 2.15.3 | ✗ | 37446.2 | 26.21 | 6.68 | -| take-five | 2.0.0 | ✓ | 35348.2 | 27.78 | 12.71 | -| restify | 11.1.0 | ✓ | 35285.0 | 27.85 | 6.36 | -| koa-isomorphic-router | 1.0.1 | ✓ | 35241.0 | 27.88 | 6.29 | -| koa-router | 13.1.0 | ✓ | 34229.2 | 28.70 | 6.10 | -| hapi | 21.3.12 | ✓ | 31749.8 | 30.99 | 5.66 | -| microrouter | 3.1.3 | ✓ | 31022.8 | 31.73 | 5.53 | -| fastify-big-json | 5.2.1 | ✓ | 11927.2 | 83.28 | 137.24 | -| express | 5.0.1 | ✓ | 10662.8 | 93.23 | 1.90 | -| express-with-middlewares | 5.0.1 | ✓ | 9332.8 | 106.56 | 3.47 | +| fastify | 5.2.1 | ✓ | 47784.0 | 20.43 | 8.57 | +| bare | v20.18.2 | ✗ | 47522.6 | 20.56 | 8.48 | +| connect | 3.7.0 | ✗ | 47233.6 | 20.66 | 8.42 | +| polka | 0.5.2 | ✓ | 47214.4 | 20.67 | 8.42 | +| rayo | 1.4.6 | ✓ | 47087.2 | 20.73 | 8.40 | +| 0http | 4.1.0 | ✓ | 46759.2 | 20.89 | 8.34 | +| server-base-router | 7.1.32 | ✓ | 46518.4 | 20.99 | 8.30 | +| server-base | 7.1.32 | ✗ | 46194.4 | 21.14 | 8.24 | +| micro | 10.0.1 | ✗ | 45524.0 | 21.46 | 8.12 | +| polkadot | 1.0.0 | ✗ | 45223.2 | 21.61 | 8.06 | +| connect-router | 1.3.8 | ✓ | 44215.2 | 22.09 | 7.89 | +| h3 | 1.14.0 | ✗ | 43476.0 | 22.50 | 7.75 | +| micro-route | 2.5.0 | ✓ | 43460.8 | 22.51 | 7.75 | +| adonisjs | 7.4.0 | ✓ | 43143.2 | 22.68 | 7.69 | +| hono | 4.6.20 | ✓ | 41789.6 | 23.48 | 6.85 | +| h3-router | 1.14.0 | ✓ | 41753.6 | 23.45 | 7.45 | +| restana | v5.0.0 | ✓ | 39975.2 | 24.51 | 7.13 | +| koa | 2.15.3 | ✗ | 37783.2 | 25.95 | 6.74 | +| take-five | 2.0.0 | ✓ | 36414.6 | 26.94 | 13.09 | +| restify | 11.1.0 | ✓ | 35695.8 | 27.52 | 6.43 | +| koa-isomorphic-router | 1.0.1 | ✓ | 35474.8 | 27.70 | 6.33 | +| koa-router | 13.1.0 | ✓ | 34150.2 | 28.76 | 6.09 | +| hapi | 21.3.12 | ✓ | 32347.2 | 30.41 | 5.77 | +| microrouter | 3.1.3 | ✓ | 30758.0 | 32.00 | 5.48 | +| fastify-big-json | 5.2.1 | ✓ | 12182.2 | 81.55 | 140.15 | +| express | 5.0.1 | ✓ | 10488.2 | 94.73 | 1.87 | +| express-with-middlewares | 5.0.1 | ✓ | 9263.3 | 107.33 | 3.45 | | trpc-router | 10.45.2 | ✓ | N/A | N/A | N/A | diff --git a/benchmark-results.json b/benchmark-results.json index 01248522..dcf47f5f 100644 --- a/benchmark-results.json +++ b/benchmark-results.json @@ -1 +1 @@ -[{"name":"fastify","version":"5.2.1","hasRouter":true,"requests":"46908.0","latency":"20.82","throughput":"8.41"},{"name":"bare","version":"v20.18.1","requests":"46878.4","latency":"20.83","throughput":"8.36"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"46420.0","latency":"21.05","throughput":"8.28"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"46360.0","latency":"21.06","throughput":"8.27"},{"name":"connect","version":"3.7.0","requests":"45918.4","latency":"21.25","throughput":"8.19"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"45832.8","latency":"21.30","throughput":"8.17"},{"name":"0http","version":"4.1.0","hasRouter":true,"requests":"45500.8","latency":"21.48","throughput":"8.11"},{"name":"server-base","version":"7.1.32","requests":"45240.0","latency":"21.60","throughput":"8.07"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"44954.4","latency":"21.78","throughput":"8.02"},{"name":"micro","version":"10.0.1","requests":"43986.4","latency":"22.24","throughput":"7.84"},{"name":"h3-router","version":"1.14.0","hasRouter":true,"requests":"43740.8","latency":"22.37","throughput":"7.80"},{"name":"h3","version":"1.14.0","requests":"43380.8","latency":"22.55","throughput":"7.74"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"42936.8","latency":"22.77","throughput":"7.66"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"42004.0","latency":"23.34","throughput":"7.49"},{"name":"adonisjs","version":"7.4.0","hasRouter":true,"requests":"41248.8","latency":"23.74","throughput":"7.36"},{"name":"hono","version":"4.6.19","hasRouter":true,"requests":"39801.6","latency":"24.61","throughput":"6.53"},{"name":"restana","version":"v5.0.0","hasRouter":true,"requests":"38883.2","latency":"25.22","throughput":"6.93"},{"name":"koa","version":"2.15.3","requests":"37446.2","latency":"26.21","throughput":"6.68"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"35348.2","latency":"27.78","throughput":"12.71"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"35285.0","latency":"27.85","throughput":"6.36"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"35241.0","latency":"27.88","throughput":"6.29"},{"name":"koa-router","version":"13.1.0","hasRouter":true,"requests":"34229.2","latency":"28.70","throughput":"6.10"},{"name":"hapi","version":"21.3.12","hasRouter":true,"requests":"31749.8","latency":"30.99","throughput":"5.66"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"31022.8","latency":"31.73","throughput":"5.53"},{"name":"fastify-big-json","version":"5.2.1","hasRouter":true,"requests":"11927.2","latency":"83.28","throughput":"137.24"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"10662.8","latency":"93.23","throughput":"1.90"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"9332.8","latency":"106.56","throughput":"3.47"},{"name":"trpc-router","version":"10.45.2","hasRouter":true,"requests":"N/A","latency":"N/A","throughput":"N/A"}] \ No newline at end of file +[{"name":"fastify","version":"5.2.1","hasRouter":true,"requests":"47784.0","latency":"20.43","throughput":"8.57"},{"name":"bare","version":"v20.18.2","requests":"47522.6","latency":"20.56","throughput":"8.48"},{"name":"connect","version":"3.7.0","requests":"47233.6","latency":"20.66","throughput":"8.42"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"47214.4","latency":"20.67","throughput":"8.42"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"47087.2","latency":"20.73","throughput":"8.40"},{"name":"0http","version":"4.1.0","hasRouter":true,"requests":"46759.2","latency":"20.89","throughput":"8.34"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"46518.4","latency":"20.99","throughput":"8.30"},{"name":"server-base","version":"7.1.32","requests":"46194.4","latency":"21.14","throughput":"8.24"},{"name":"micro","version":"10.0.1","requests":"45524.0","latency":"21.46","throughput":"8.12"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"45223.2","latency":"21.61","throughput":"8.06"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"44215.2","latency":"22.09","throughput":"7.89"},{"name":"h3","version":"1.14.0","requests":"43476.0","latency":"22.50","throughput":"7.75"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"43460.8","latency":"22.51","throughput":"7.75"},{"name":"adonisjs","version":"7.4.0","hasRouter":true,"requests":"43143.2","latency":"22.68","throughput":"7.69"},{"name":"hono","version":"4.6.20","hasRouter":true,"requests":"41789.6","latency":"23.48","throughput":"6.85"},{"name":"h3-router","version":"1.14.0","hasRouter":true,"requests":"41753.6","latency":"23.45","throughput":"7.45"},{"name":"restana","version":"v5.0.0","hasRouter":true,"requests":"39975.2","latency":"24.51","throughput":"7.13"},{"name":"koa","version":"2.15.3","requests":"37783.2","latency":"25.95","throughput":"6.74"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"36414.6","latency":"26.94","throughput":"13.09"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"35695.8","latency":"27.52","throughput":"6.43"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"35474.8","latency":"27.70","throughput":"6.33"},{"name":"koa-router","version":"13.1.0","hasRouter":true,"requests":"34150.2","latency":"28.76","throughput":"6.09"},{"name":"hapi","version":"21.3.12","hasRouter":true,"requests":"32347.2","latency":"30.41","throughput":"5.77"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"30758.0","latency":"32.00","throughput":"5.48"},{"name":"fastify-big-json","version":"5.2.1","hasRouter":true,"requests":"12182.2","latency":"81.55","throughput":"140.15"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"10488.2","latency":"94.73","throughput":"1.87"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"9263.3","latency":"107.33","throughput":"3.45"},{"name":"trpc-router","version":"10.45.2","hasRouter":true,"requests":"N/A","latency":"N/A","throughput":"N/A"}] \ No newline at end of file