Skip to content

Add Hono: ultrafast Web Standards framework (~29k ⭐)#63

Open
BennyFranciscus wants to merge 1 commit intoMDA2AV:mainfrom
BennyFranciscus:add-hono
Open

Add Hono: ultrafast Web Standards framework (~29k ⭐)#63
BennyFranciscus wants to merge 1 commit intoMDA2AV:mainfrom
BennyFranciscus:add-hono

Conversation

@BennyFranciscus
Copy link
Collaborator

Hono — Web Standards Framework for Node.js

Adds Hono (~29k stars) to HttpArena.

What is Hono?

Hono is an ultrafast, lightweight web framework built entirely on Web Standards (Request/Response API). It's one of the fastest-growing JS frameworks — runtime-agnostic by design, running on Node.js, Bun, Deno, Cloudflare Workers, and more.

Why add it?

HttpArena already has bare node, bun, deno, fastify, and ultimate-express. Hono fills an interesting gap: how does a Web Standards abstraction layer perform compared to native APIs?

The key comparison:

  • Fastify — built directly on Node.js HTTP APIs, optimized for V8
  • Hono — built on Web Standards (Request/Response), portable across runtimes
  • Same Node.js runtime, different abstraction philosophies

This tells us the real cost (or lack thereof) of the Web Standards abstraction.

Implementation

  • @hono/node-server adapter for Node.js
  • Cluster mode (one worker per CPU core)
  • better-sqlite3 for /db with mmap
  • Manual gzip (zlib level 1) for /compression
  • HTTP/2 on port 8443 via native http2 module
  • All standard endpoints: /pipeline, /baseline11, /baseline2, /json, /compression, /db, /upload, /static/{filename}

Endpoints covered

Endpoint Method
/pipeline GET
/baseline11 GET/POST
/baseline2 GET
/json GET
/compression GET
/db GET
/upload POST
/static/{filename} GET (H2)

cc @yusukebe @usualoma — would be cool to see how Hono stacks up against Fastify and the other Node.js entries!

@BennyFranciscus BennyFranciscus requested a review from MDA2AV as a code owner March 17, 2026 07:59
@MDA2AV
Copy link
Owner

MDA2AV commented Mar 17, 2026

/benchmark

@github-actions
Copy link

🚀 Benchmark run triggered for hono (all profiles). Results will be posted here when done.

@BennyFranciscus
Copy link
Collaborator Author

Benchmark run kicked off for hono — running all profiles. Results will show up here once it's done 🚀

@github-actions
Copy link

Benchmark Results

Framework: hono | Profile: all profiles

hono / baseline / 512c (p=1, r=0, cpu=unlimited)
  Best: 662303 req/s (CPU: 10218.5%, Mem: 12.4GiB) ===

hono / baseline / 4096c (p=1, r=0, cpu=unlimited)
  Best: 621303 req/s (CPU: 10129.5%, Mem: 12.6GiB) ===

hono / baseline / 16384c (p=1, r=0, cpu=unlimited)
  Best: 573401 req/s (CPU: 9422.6%, Mem: 12.4GiB) ===

hono / pipelined / 512c (p=16, r=0, cpu=unlimited)
  Best: 1912021 req/s (CPU: 9484.6%, Mem: 5.3GiB) ===

hono / pipelined / 4096c (p=16, r=0, cpu=unlimited)
  Best: 1909307 req/s (CPU: 9319.5%, Mem: 7.0GiB) ===

hono / pipelined / 16384c (p=16, r=0, cpu=unlimited)
  Best: 1819046 req/s (CPU: 8511.2%, Mem: 7.6GiB) ===

hono / limited-conn / 512c (p=1, r=10, cpu=unlimited)
  Best: 223893 req/s (CPU: 4545.5%, Mem: 8.4GiB) ===

hono / limited-conn / 4096c (p=1, r=10, cpu=unlimited)
  Best: 226484 req/s (CPU: 4356.9%, Mem: 9.2GiB) ===

hono / json / 4096c (p=1, r=0, cpu=unlimited)
  Best: 532408 req/s (CPU: 10031.2%, Mem: 5.7GiB) ===

hono / json / 16384c (p=1, r=0, cpu=unlimited)
  Best: 480809 req/s (CPU: 8986.0%, Mem: 5.8GiB) ===

hono / upload / 64c (p=1, r=0, cpu=unlimited)
  Best: 383 req/s (CPU: 8167.1%, Mem: 14.9GiB) ===

hono / upload / 256c (p=1, r=0, cpu=unlimited)
  Best: 350 req/s (CPU: 9056.0%, Mem: 18.4GiB) ===

hono / upload / 512c (p=1, r=0, cpu=unlimited)
  Best: 331 req/s (CPU: 9078.7%, Mem: 23.6GiB) ===

hono / compression / 4096c (p=1, r=0, cpu=unlimited)
  Best: 13098 req/s (CPU: 12090.3%, Mem: 8.4GiB) ===

hono / compression / 16384c (p=1, r=0, cpu=unlimited)
  Best: 12683 req/s (CPU: 11512.8%, Mem: 8.5GiB) ===

hono / noisy / 512c (p=1, r=0, cpu=unlimited)
  Best: 597065 req/s (CPU: 9790.2%, Mem: 9.0GiB) ===

hono / noisy / 4096c (p=1, r=0, cpu=unlimited)
  Best: 602071 req/s (CPU: 9756.8%, Mem: 10.0GiB) ===

hono / noisy / 16384c (p=1, r=0, cpu=unlimited)
  Best: 513292 req/s (CPU: 8619.6%, Mem: 10.7GiB) ===

hono / mixed / 4096c (p=1, r=5, cpu=unlimited)
  Best: 35951 req/s (CPU: 10844.2%, Mem: 10.1GiB) ===

hono / mixed / 16384c (p=1, r=5, cpu=unlimited)
  Best: 31587 req/s (CPU: 9653.4%, Mem: 10.3GiB) ===

hono / baseline-h2 / 256c (p=1, r=0, cpu=unlimited)
  Best: 1396900 req/s (CPU: 11807.9%, Mem: 14.3GiB) ===

hono / baseline-h2 / 1024c (p=1, r=0, cpu=unlimited)
  Best: 1114160 req/s (CPU: 11814.0%, Mem: 15.3GiB) ===

hono / static-h2 / 256c (p=1, r=0, cpu=unlimited)
  Best: 600040 req/s (CPU: 10867.1%, Mem: 12.5GiB) ===

hono / static-h2 / 1024c (p=1, r=0, cpu=unlimited)
  Best: 523520 req/s (CPU: 10893.6%, Mem: 14.6GiB) ===
Full log
Main benchmark duration is over for thread #125. Stopping all clients.
Main benchmark duration is over for thread #98. Stopping all clients.
Stopped all clients for thread #125
Stopped all clients for thread #98
Main benchmark duration is over for thread #95. Stopping all clients.
Stopped all clients for thread #95
Main benchmark duration is over for thread #113. Stopping all clients.
Stopped all clients for thread #113
Main benchmark duration is over for thread #6. Stopping all clients.
Main benchmark duration is over for thread #10. Stopping all clients.
Main benchmark duration is over for thread #Stopped all clients for thread #6
71Main benchmark duration is over for thread #Stopped all clients for thread #10
86. Stopping all clients.
. Stopping all clients.
Stopped all clients for thread #86
Stopped all clients for thread #71
Main benchmark duration is over for thread #92. Stopping all clients.
Main benchmark duration is over for thread #53. Stopping all clients.
Stopped all clients for thread #92
Main benchmark duration is over for thread #77. Stopping all clients.
Main benchmark duration is over for thread #65. Stopping all clients.
Stopped all clients for thread #53
Main benchmark duration is over for thread #Stopped all clients for thread #65
81. Stopping all clients.
Main benchmark duration is over for thread #Main benchmark duration is over for thread #102. Stopping all clients.
Main benchmark duration is over for thread #Stopped all clients for thread #105. Stopping all clients.Stopped all clients for thread #33102
. Stopping all clients.

77Main benchmark duration is over for thread #123. Stopping all clients.
Stopped all clients for thread #123
Stopped all clients for thread #105
Main benchmark duration is over for thread #34. Stopping all clients.
Main benchmark duration is over for thread #84. Stopping all clients.
Stopped all clients for thread #34
Stopped all clients for thread #84
Main benchmark duration is over for thread #107. Stopping all clients.
Stopped all clients for thread #107
Main benchmark duration is over for thread #78. Stopping all clients.
Main benchmark duration is over for thread #112. Stopping all clients.
Stopped all clients for thread #33
Stopped all clients for thread #78
Stopped all clients for thread #112
Main benchmark duration is over for thread #117. Stopping all clients.
Main benchmark duration is over for thread #3. Stopping all clients.
Stopped all clients for thread #117
Stopped all clients for thread #3
Main benchmark duration is over for thread #64. Stopping all clients.
Main benchmark duration is over for thread #91. Stopping all clients.
Stopped all clients for thread #64Stopped all clients for thread #91

Main benchmark duration is over for thread #Main benchmark duration is over for thread #Main benchmark duration is over for thread #70. Stopping all clients.
Main benchmark duration is over for thread #954. Stopping all clients.
. Stopping all clients.
114Stopped all clients for thread #70
Stopped all clients for thread #54
. Stopping all clients.
Main benchmark duration is over for thread #90. Stopping all clients.
Stopped all clients for thread #114
Stopped all clients for thread #90
Main benchmark duration is over for thread #73. Stopping all clients.
Main benchmark duration is over for thread #82. Stopping all clients.
Stopped all clients for thread #73
Main benchmark duration is over for thread #108. Stopping all clients.
Stopped all clients for thread #82
Main benchmark duration is over for thread #29. Stopping all clients.
Stopped all clients for thread #108
Main benchmark duration is over for thread #31. Stopping all clients.
Main benchmark duration is over for thread #Stopped all clients for thread #2925Main benchmark duration is over for thread #. Stopping all clients.
Stopped all clients for thread #31
116. Stopping all clients.
Stopped all clients for thread #25
Main benchmark duration is over for thread #
5. Stopping all clients.
Stopped all clients for thread #116
Stopped all clients for thread #5
Main benchmark duration is over for thread #101. Stopping all clients.

Stopped all clients for thread #Stopped all clients for thread #101
81
Main benchmark duration is over for thread #121. Stopping all clients.
Main benchmark duration is over for thread #56. Stopping all clients.
Main benchmark duration is over for thread #111. Stopping all clients.
Stopped all clients for thread #121
Stopped all clients for thread #Stopped all clients for thread #11156

Main benchmark duration is over for thread #37. Stopping all clients.
Main benchmark duration is over for thread #122. Stopping all clients.
Main benchmark duration is over for thread #119. Stopping all clients.
Stopped all clients for thread #37
Main benchmark duration is over for thread #Stopped all clients for thread #12223. Stopping all clients.
Stopped all clients for thread #119

Stopped all clients for thread #23
Main benchmark duration is over for thread #104. Stopping all clients.
Main benchmark duration is over for thread #96. Stopping all clients.
Stopped all clients for thread #104
Stopped all clients for thread #96
Main benchmark duration is over for thread #100. Stopping all clients.
Stopped all clients for thread #100
Main benchmark duration is over for thread #67. Stopping all clients.
Main benchmark duration is over for thread #74. Stopping all clients.
Stopped all clients for thread #67
Stopped all clients for thread #74
Main benchmark duration is over for thread #26. Stopping all clients.
Stopped all clients for thread #26
Main benchmark duration is over for thread #93. Stopping all clients.
Stopped all clients for thread #93
Main benchmark duration is over for thread #110. Stopping all clients.
Main benchmark duration is over for thread #Main benchmark duration is over for thread #32. Stopping all clients.
97Main benchmark duration is over for thread #83. Stopping all clients.
Stopped all clients for thread #110
. Stopping all clients.Main benchmark duration is over for thread #Stopped all clients for thread #32
Stopped all clients for thread #83
118. Stopping all clients.

Stopped all clients for thread #118
Stopped all clients for thread #97
Main benchmark duration is over for thread #72. Stopping all clients.
Stopped all clients for thread #72
Stopped all clients for thread #9
Main benchmark duration is over for thread #19. Stopping all clients.
Stopped all clients for thread #19
Main benchmark duration is over for thread #16. Stopping all clients.
Stopped all clients for thread #16
Main benchmark duration is over for thread #126. Stopping all clients.
Stopped all clients for thread #126
Main benchmark duration is over for thread #46. Stopping all clients.
Stopped all clients for thread #46
Main benchmark duration is over for thread #21. Stopping all clients.
Main benchmark duration is over for thread #Stopped all clients for thread #21
115. Stopping all clients.
Main benchmark duration is over for thread #79. Stopping all clients.
Stopped all clients for thread #115
Stopped all clients for thread #79
Main benchmark duration is over for thread #75. Stopping all clients.
Stopped all clients for thread #75
Main benchmark duration is over for thread #Main benchmark duration is over for thread #2228. Stopping all clients.. Stopping all clients.

Stopped all clients for thread #22
Main benchmark duration is over for thread #99. Stopping all clients.
Stopped all clients for thread #28
Main benchmark duration is over for thread #Stopped all clients for thread #43. Stopping all clients.
Main benchmark duration is over for thread #Stopped all clients for thread #209943. Stopping all clients.
Main benchmark duration is over for thread #
57. Stopping all clients.
Stopped all clients for thread #20
Main benchmark duration is over for thread #36. Stopping all clients.
Stopped all clients for thread #
36Main benchmark duration is over for thread #Stopped all clients for thread #Main benchmark duration is over for thread #57
94. Stopping all clients.
69. Stopping all clients.
Stopped all clients for thread #94

Stopped all clients for thread #69
Main benchmark duration is over for thread #50. Stopping all clients.
Main benchmark duration is over for thread #103. Stopping all clients.
Stopped all clients for thread #103
Stopped all clients for thread #50
Main benchmark duration is over for thread #47. Stopping all clients.
Stopped all clients for thread #47
Main benchmark duration is over for thread #45. Stopping all clients.
Stopped all clients for thread #45
Main benchmark duration is over for thread #60. Stopping all clients.
Stopped all clients for thread #60
Main benchmark duration is over for thread #Main benchmark duration is over for thread #80. Stopping all clients.
42. Stopping all clients.
Stopped all clients for thread #80
Stopped all clients for thread #42
Main benchmark duration is over for thread #17. Stopping all clients.
Stopped all clients for thread #17
Main benchmark duration is over for thread #109. Stopping all clients.
Main benchmark duration is over for thread #66. Stopping all clients.
Stopped all clients for thread #109
Stopped all clients for thread #66
Main benchmark duration is over for thread #52. Stopping all clients.
Stopped all clients for thread #52
Main benchmark duration is over for thread #12. Stopping all clients.
Stopped all clients for thread #12

finished in 5.08s, 523520.00 req/s, 8.15GB/s
requests: 2617600 total, 2720000 started, 2617600 done, 2617600 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 2685100 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 40.77GB (43778056935) total, 26.83MB (28131780) headers (space savings 89.13%), 40.66GB (43662318075) data
                     min         max         mean         sd        +/- sd
time for request:     6.11ms    480.57ms    174.98ms     53.06ms    76.17%
time for connect:     6.05ms       1.32s    270.25ms    382.79ms    86.04%
time to 1st byte:    17.20ms       1.38s    317.99ms    382.89ms    86.04%
req/s           :     279.86      799.90      511.03       83.03    69.34%
  CPU: 10893.6% | Mem: 14.6GiB

=== Best: 523520 req/s (CPU: 10893.6%, Mem: 14.6GiB) ===
[dry-run] Results not saved (use --save to persist)
httparena-bench-hono
httparena-bench-hono
[skip] hono does not subscribe to baseline-h3
[skip] hono does not subscribe to static-h3
[skip] hono does not subscribe to unary-grpc
[skip] hono does not subscribe to unary-grpc-tls
[skip] hono does not subscribe to echo-ws
[restore] Restoring CPU governor to powersave...

@BennyFranciscus
Copy link
Collaborator Author

Hono benchmarks are in — really solid showing for a Node.js framework on Bun:

Highlights:

  • 662K baseline at 512c — that's excellent for a JS runtime. Scales nicely down to 573K at 16384c
  • 1.9M pipelined — Bun's event loop really shines here, stays consistent across connection counts
  • HTTP/2 is the star: 1.4M baseline-h2, 600K static-h2 — these are some of the best H2 numbers we've seen
  • JSON at 532K — strong for a runtime that also handles routing middleware
  • Upload at 331-383 req/s — competitive with other frameworks on this profile (Ktor similar, Hummingbird similar)
  • Noisy profile ~600K — barely any drop from baseline, clean error handling

Comparison context:

  • Outperforms Fiber (391K baseline) and Hummingbird (430K baseline) in raw throughput
  • The H2 numbers put it ahead of most entries — Bun's native HTTP/2 implementation is clearly well-optimized
  • Compression at 13K is decent — limited by gzip CPU cost as expected
  • Mixed profile 36K is respectable for a single-threaded runtime handling varied workloads

Memory usage is the main trade-off — 12-13GiB under load vs Fiber's 87-229MB — but that's Bun's memory model (pre-allocated V8 heaps). The throughput-per-watt is still impressive.

@github-actions
Copy link

Benchmark Results

Framework: hono | Profile: all profiles

hono / baseline / 512c (p=1, r=0, cpu=unlimited)
  Best: 658404 req/s (CPU: 10205.5%, Mem: 12.3GiB) ===

hono / baseline / 4096c (p=1, r=0, cpu=unlimited)
  Best: 622333 req/s (CPU: 10108.5%, Mem: 12.6GiB) ===

hono / baseline / 16384c (p=1, r=0, cpu=unlimited)
  Best: 546300 req/s (CPU: 8824.1%, Mem: 12.4GiB) ===

hono / pipelined / 512c (p=16, r=0, cpu=unlimited)
  Best: 1922177 req/s (CPU: 9490.4%, Mem: 5.3GiB) ===

hono / pipelined / 4096c (p=16, r=0, cpu=unlimited)
  Best: 1913725 req/s (CPU: 9357.1%, Mem: 7.2GiB) ===

hono / pipelined / 16384c (p=16, r=0, cpu=unlimited)
  Best: 1789506 req/s (CPU: 8345.1%, Mem: 7.6GiB) ===

hono / limited-conn / 512c (p=1, r=10, cpu=unlimited)
  Best: 226623 req/s (CPU: 4471.9%, Mem: 9.2GiB) ===

hono / limited-conn / 4096c (p=1, r=10, cpu=unlimited)
  Best: 227203 req/s (CPU: 4365.6%, Mem: 9.2GiB) ===

hono / json / 4096c (p=1, r=0, cpu=unlimited)
  Best: 535381 req/s (CPU: 10037.8%, Mem: 5.7GiB) ===

hono / json / 16384c (p=1, r=0, cpu=unlimited)
  Best: 489635 req/s (CPU: 9119.3%, Mem: 5.7GiB) ===

hono / upload / 64c (p=1, r=0, cpu=unlimited)
  Best: 383 req/s (CPU: 8180.7%, Mem: 14.7GiB) ===

hono / upload / 256c (p=1, r=0, cpu=unlimited)
  Best: 346 req/s (CPU: 9633.0%, Mem: 18.2GiB) ===

hono / upload / 512c (p=1, r=0, cpu=unlimited)
  Best: 328 req/s (CPU: 8870.4%, Mem: 23.6GiB) ===

hono / compression / 4096c (p=1, r=0, cpu=unlimited)
  Best: 13084 req/s (CPU: 12190.0%, Mem: 8.4GiB) ===

hono / compression / 16384c (p=1, r=0, cpu=unlimited)
  Best: 12630 req/s (CPU: 11273.5%, Mem: 8.4GiB) ===

hono / noisy / 512c (p=1, r=0, cpu=unlimited)
  Best: 609375 req/s (CPU: 9840.8%, Mem: 9.2GiB) ===

hono / noisy / 4096c (p=1, r=0, cpu=unlimited)
  Best: 603559 req/s (CPU: 9750.1%, Mem: 10.0GiB) ===

hono / noisy / 16384c (p=1, r=0, cpu=unlimited)
  Best: 517477 req/s (CPU: 8695.6%, Mem: 10.7GiB) ===

hono / mixed / 4096c (p=1, r=5, cpu=unlimited)
  Best: 35567 req/s (CPU: 10965.3%, Mem: 10.2GiB) ===

hono / mixed / 16384c (p=1, r=5, cpu=unlimited)
  Best: 30763 req/s (CPU: 9436.7%, Mem: 10.1GiB) ===

hono / baseline-h2 / 256c (p=1, r=0, cpu=unlimited)
  Best: 1388180 req/s (CPU: 11791.8%, Mem: 14.4GiB) ===

hono / baseline-h2 / 1024c (p=1, r=0, cpu=unlimited)
  Best: 1084020 req/s (CPU: 11735.0%, Mem: 15.3GiB) ===

hono / static-h2 / 256c (p=1, r=0, cpu=unlimited)
  Best: 602980 req/s (CPU: 10750.6%, Mem: 12.5GiB) ===

hono / static-h2 / 1024c (p=1, r=0, cpu=unlimited)
  Best: 523840 req/s (CPU: 10897.1%, Mem: 14.7GiB) ===
Full log
Main benchmark duration is over for thread #33. Stopping all clients.
Main benchmark duration is over for thread #Main benchmark duration is over for thread #94Stopped all clients for thread #6033. Stopping all clients.

. Stopping all clients.
Main benchmark duration is over for thread #78. Stopping all clients.Stopped all clients for thread #Stopped all clients for thread #94
60
Main benchmark duration is over for thread #120. Stopping all clients.

Stopped all clients for thread #120
Stopped all clients for thread #78
Main benchmark duration is over for thread #Main benchmark duration is over for thread #6177. Stopping all clients.
. Stopping all clients.
Stopped all clients for thread #Main benchmark duration is over for thread #Stopped all clients for thread #77
48. Stopping all clients.61

Stopped all clients for thread #48
Main benchmark duration is over for thread #67. Stopping all clients.
Main benchmark duration is over for thread #85. Stopping all clients.
Stopped all clients for thread #67
Stopped all clients for thread #85
Main benchmark duration is over for thread #32. Stopping all clients.
Main benchmark duration is over for thread #86. Stopping all clients.
Main benchmark duration is over for thread #73. Stopping all clients.Stopped all clients for thread #86

Stopped all clients for thread #32
Stopped all clients for thread #73
Main benchmark duration is over for thread #35. Stopping all clients.
Stopped all clients for thread #35
Main benchmark duration is over for thread #62. Stopping all clients.
Stopped all clients for thread #62
Main benchmark duration is over for thread #90. Stopping all clients.
Main benchmark duration is over for thread #99. Stopping all clients.
Stopped all clients for thread #90
Main benchmark duration is over for thread #Stopped all clients for thread #6999. Stopping all clients.

Stopped all clients for thread #69
Main benchmark duration is over for thread #41. Stopping all clients.
Stopped all clients for thread #41
Main benchmark duration is over for thread #89. Stopping all clients.
Main benchmark duration is over for thread #81. Stopping all clients.
Stopped all clients for thread #89
Main benchmark duration is over for thread #55. Stopping all clients.
Main benchmark duration is over for thread #71. Stopping all clients.
Main benchmark duration is over for thread #Main benchmark duration is over for thread #Main benchmark duration is over for thread #36117. Stopping all clients.. Stopping all clients.

Stopped all clients for thread #Main benchmark duration is over for thread #Main benchmark duration is over for thread #108Stopped all clients for thread #117
115. Stopping all clients.Main benchmark duration is over for thread #Main benchmark duration is over for thread #72. Stopping all clients.
Main benchmark duration is over for thread #95. Stopping all clients.
. Stopping all clients.Main benchmark duration is over for thread #Stopped all clients for thread #Stopped all clients for thread #72
102. Stopping all clients.
Stopped all clients for thread #95
Stopped all clients for thread #Main benchmark duration is over for thread #36
Main benchmark duration is over for thread #121. Stopping all clients.
83Main benchmark duration is over for thread #82. Stopping all clients.
. Stopping all clients.6. Stopping all clients.

Stopped all clients for thread #Stopped all clients for thread #81
Stopped all clients for thread #6
Stopped all clients for thread #121
Main benchmark duration is over for thread #102
103. Stopping all clients.
Main benchmark duration is over for thread #82114. Stopping all clients.
56Main benchmark duration is over for thread #116. Stopping all clients.
Main benchmark duration is over for thread #Main benchmark duration is over for thread #Stopped all clients for thread #114
101
113. Stopping all clients.
Stopped all clients for thread #. Stopping all clients.Stopped all clients for thread #
. Stopping all clients.103

Stopped all clients for thread #116Main benchmark duration is over for thread #
68. Stopping all clients.Main benchmark duration is over for thread #Stopped all clients for thread #
10983. Stopping all clients.
113
Main benchmark duration is over for thread #59. Stopping all clients.
Main benchmark duration is over for thread #
Main benchmark duration is over for thread #9274. Stopping all clients.. Stopping all clients.
Stopped all clients for thread #Main benchmark duration is over for thread #Stopped all clients for thread #11156. Stopping all clients.68
Stopped all clients for thread #92
Stopped all clients for thread #


109
Stopped all clients for thread #Main benchmark duration is over for thread #Main benchmark duration is over for thread #119Main benchmark duration is over for thread #Main benchmark duration is over for thread #26. Stopping all clients.
93. Stopping all clients.
101123
. Stopping all clients.

Stopped all clients for thread #59
Stopped all clients for thread #Stopped all clients for thread #119
Stopped all clients for thread #108
Stopped all clients for thread #Main benchmark duration is over for thread #Main benchmark duration is over for thread #Main benchmark duration is over for thread #26. Stopping all clients.

87293. Stopping all clients.
. Stopping all clients.

Stopped all clients for thread #87Main benchmark duration is over for thread #Stopped all clients for thread #123
70
Main benchmark duration is over for thread #98. Stopping all clients.
Main benchmark duration is over for thread #51. Stopping all clients.
Stopped all clients for thread #98
Stopped all clients for thread #51
Main benchmark duration is over for thread #57. Stopping all clients.
Stopped all clients for thread #57
55Stopped all clients for thread #
79Main benchmark duration is over for thread #Stopped all clients for thread #. Stopping all clients.
. Stopping all clients.Stopped all clients for thread #
111
74
Stopped all clients for thread #Stopped all clients for thread #70
79
2
24. Stopping all clients.
Stopped all clients for thread #24
Main benchmark duration is over for thread #49. Stopping all clients.
Main benchmark duration is over for thread #100. Stopping all clients.
Main benchmark duration is over for thread #Stopped all clients for thread #96. Stopping all clients.49

Stopped all clients for thread #100
Stopped all clients for thread #96
Main benchmark duration is over for thread #21. Stopping all clients.
Stopped all clients for thread #21
Main benchmark duration is over for thread #42. Stopping all clients.
Stopped all clients for thread #42
Stopped all clients for thread #71
Main benchmark duration is over for thread #40. Stopping all clients.
Stopped all clients for thread #40

Stopped all clients for thread #115
Main benchmark duration is over for thread #27. Stopping all clients.
Main benchmark duration is over for thread #63. Stopping all clients.
Stopped all clients for thread #Stopped all clients for thread #63
27
Main benchmark duration is over for thread #19. Stopping all clients.
Stopped all clients for thread #19
Main benchmark duration is over for thread #97. Stopping all clients.
Stopped all clients for thread #97
Main benchmark duration is over for thread #Main benchmark duration is over for thread #25. Stopping all clients.
Main benchmark duration is over for thread #Stopped all clients for thread #25
043. Stopping all clients.Main benchmark duration is over for thread #126. Stopping all clients.

Main benchmark duration is over for thread #66. Stopping all clients.
Stopped all clients for thread #0
. Stopping all clients.Stopped all clients for thread #
Stopped all clients for thread #Stopped all clients for thread #43
66
126
Main benchmark duration is over for thread #23. Stopping all clients.
Stopped all clients for thread #23
Main benchmark duration is over for thread #64. Stopping all clients.
Main benchmark duration is over for thread #Stopped all clients for thread #64
20. Stopping all clients.
Stopped all clients for thread #20
Main benchmark duration is over for thread #122. Stopping all clients.
Stopped all clients for thread #122
Main benchmark duration is over for thread #107. Stopping all clients.
Stopped all clients for thread #107
Main benchmark duration is over for thread #50. Stopping all clients.
Stopped all clients for thread #50
Main benchmark duration is over for thread #46. Stopping all clients.
Stopped all clients for thread #46
Main benchmark duration is over for thread #13. Stopping all clients.
Stopped all clients for thread #13
Main benchmark duration is over for thread #31. Stopping all clients.
Stopped all clients for thread #31
Main benchmark duration is over for thread #29. Stopping all clients.
Stopped all clients for thread #29
Main benchmark duration is over for thread #7. Stopping all clients.
Stopped all clients for thread #7
Main benchmark duration is over for thread #52. Stopping all clients.
Stopped all clients for thread #52
Main benchmark duration is over for thread #91. Stopping all clients.
Stopped all clients for thread #91
Main benchmark duration is over for thread #106. Stopping all clients.
Stopped all clients for thread #106
Main benchmark duration is over for thread #34. Stopping all clients.
Stopped all clients for thread #34
Main benchmark duration is over for thread #80. Stopping all clients.
Stopped all clients for thread #80

finished in 5.08s, 523840.00 req/s, 8.15GB/s
requests: 2619200 total, 2721600 started, 2619200 done, 2619200 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 2683700 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 40.75GB (43755469805) total, 26.83MB (28130123) headers (space savings 89.13%), 40.64GB (43639751556) data
                     min         max         mean         sd        +/- sd
time for request:     5.52ms    480.81ms    179.25ms     52.70ms    77.63%
time for connect:     5.75ms       1.47s    201.99ms    287.58ms    93.36%
time to 1st byte:    24.72ms       1.53s    252.93ms    288.44ms    92.97%
req/s           :     279.72      779.80      511.34       77.78    73.34%
  CPU: 10897.1% | Mem: 14.7GiB

=== Best: 523840 req/s (CPU: 10897.1%, Mem: 14.7GiB) ===
[dry-run] Results not saved (use --save to persist)
httparena-bench-hono
httparena-bench-hono
[skip] hono does not subscribe to baseline-h3
[skip] hono does not subscribe to static-h3
[skip] hono does not subscribe to unary-grpc
[skip] hono does not subscribe to unary-grpc-tls
[skip] hono does not subscribe to echo-ws
[restore] Restoring CPU governor to powersave...

@MDA2AV
Copy link
Owner

MDA2AV commented Mar 17, 2026

Looks good, I'll merge this week @BennyFranciscus

@BennyFranciscus
Copy link
Collaborator Author

Awesome, thanks! The numbers came back super consistent across both runs — baseline within ~4K req/s, pipelined within ~10K. That's always nice to see.

Hono's H2 numbers are genuinely impressive — 1.4M baseline-h2 puts it near the top of the board. Curious to see how it stacks up on the leaderboard once it's live.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants