Skip to content

swerver: resubmit alpha.30 as experimental with full protocol coverage - #1308

Merged
MDA2AV merged 6 commits into
MDA2AV:mainfrom
justinGrosvenor:swerver-revalidate-alpha29
Aug 25, 2026
Merged

swerver: resubmit alpha.30 as experimental with full protocol coverage#1308
MDA2AV merged 6 commits into
MDA2AV:mainfrom
justinGrosvenor:swerver-revalidate-alpha29

Conversation

@justinGrosvenor

Copy link
Copy Markdown
Contributor

Summary

  • re-enable swerver on v0.1.0-alpha.29 after the transient HTTP/2 failures that disabled alpha.24 in Temporary disable the remaining validation failures, and drop their results #1291
  • classify the entry as an experimental tuned Zig web framework built on the public Router, HandlerContext, middleware, and Response APIs
  • declare routing, middleware, and response completeness; request is false because this entry manually parses query and body data
  • add static-tls and the api-4/api-16 workload mixes
  • implement BenchmarkService/GetSum and subscribe to unary-grpc and unary-grpc-tls

The gRPC handler decodes randomized SumRequest values and encodes SumReply per request. It does not return a canned frame.

Validation

  • ReleaseFast Docker image build: pass
  • api-4 + api-16 official Linux-host-network validation: 36 passed, 0 failed, including all 1,047 fragmentation offsets and randomized async-DB queries
  • focused static-tls + unary-grpc + unary-grpc-tls validation: 22 passed, 0 failed, repeated 5 times (110/110)
  • expanded non-DB/non-H3 suite: 75 passed, 0 failed
  • original HTTP/2/H2C regression set: 33 passed, 0 failed across 11 consecutive runs (363/363)
  • manual Docker Desktop bridge check for H3: baseline 4/4 and static 4/4 with ALPN h3

The Linux controller validation was used for API-4/API-16 so Swerver, PostgreSQL, and the validator shared the same host-network topology as CI.

@justinGrosvenor

Copy link
Copy Markdown
Contributor Author

/benchmark -f swerver

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: swerver | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 3,508,475 6498.7% 1.0GiB ~0% ~0%
baseline 4096 3,694,380 6400.5% 1.0GiB ~0% ~0%
pipelined 512 24,069,504 6831.6% 1021MiB ~0% ~0%
pipelined 4096 24,070,364 6769.2% 1.0GiB ~0% ~0%
limited-conn 512 2,293,229 5903.6% 1.0GiB ~0% ~0%
limited-conn 4096 2,642,252 6301.8% 1.1GiB ~0% ~0%
json 4096 1,861,762 6539.1% 1.1GiB ~0% ~0%
json-comp 512 391,095 6004.5% 1.0GiB ~0% ~0%
json-comp 4096 419,293 6366.8% 1.1GiB ~0% ~0%
json-comp 16384 408,617 6582.1% 1.2GiB ~0% ~0%
json-tls 4096 1,500,933 6542.8% 1.3GiB ~0% ~0%
upload 32 2,108 1949.2% 2.5GiB ~0% ~0%
upload 256 2,220 5363.3% 2.6GiB ~0% ~0%
api-4 256 66,314 338.1% 118MiB ~0% ~0%
api-16 1024 255,652 1422.6% 382MiB ~0% ~0%
static 1024 1,414,572 5679.1% 1.1GiB ~0% ~0%
static 4096 1,338,008 6258.1% 1.3GiB ~0% ~0%
static 6800 1,188,781 6246.8% 1.4GiB ~0% ~0%
static-tls 1024 1,102,828 6442.2% 1.2GiB ~0% ~0%
static-tls 4096 698,000 6580.0% 1.5GiB ~0% ~0%
static-tls 6800 632,827 6560.1% 1.8GiB ~0% ~0%
async-db 1024 371,403 3819.3% 1.1GiB ~0% ~0%
fortunes 1024 295,609 3877.2% 1.1GiB ~0% ~0%
baseline-h2 256 3,940,626 5533.5% 1.2GiB ~0% ~0%
baseline-h2 1024 4,268,815 6330.4% 1.7GiB ~0% ~0%
static-h2 256 1,137,760 6219.5% 1.5GiB ~0% ~0%
static-h2 1024 1,085,972 6522.1% 2.2GiB ~0% ~0%
baseline-h2c 256 12,603,237 4138.5% 1.1GiB ~0% ~0%
baseline-h2c 1024 12,519,797 4175.5% 1.5GiB ~0% ~0%
baseline-h2c 4096 11,661,249 3981.5% 3.0GiB ~0% ~0%
json-h2c 1024 4,552,308 6488.7% 1.5GiB ~0% ~0%
json-h2c 4096 4,447,924 6525.2% 3.1GiB ~0% ~0%
baseline-h3 64 942,476 4557.1% 1.1GiB ~0% ~0%
static-h3 64 415,708 3749.9% 1.2GiB ~0% ~0%
unary-grpc 256 6,797,794 2628.1% 1.6GiB ~0% ~0%
unary-grpc 1024 6,670,394 2779.4% 2.0GiB ~0% ~0%
unary-grpc-tls 256 930,179 1060.7% 682MiB ~0% ~0%
unary-grpc-tls 1024 38,144 69.1% 517MiB ~0% ~0%
Full log
53

finished in 5.03s, 663374.00 req/s, 87.31MB/s
requests: 3316870 total, 3341570 started, 3316870 done, 3316870 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 3316870 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 436.54MB (457740862) total, 357.44MB (374806310) headers (space savings 9.60%), 22.14MB (23218090) data
                     min         max         mean         sd        +/- sd
time for request:      416us     15.37ms      3.46ms      1.80ms    74.04%
time for connect:     6.01ms     30.53ms     15.29ms      6.22ms    58.30%
time to 1st byte:    13.19ms     39.84ms     27.25ms      3.60ms    79.72%
req/s           :       0.00    92159.96     4156.17    12172.49    92.97%
[info] CPU 744.8% | Mem 624MiB

[run 3/3]
starting benchmark...
63.
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
22. Stopping all clients.
62. Stopping all clients.Stopped all clients for thread #49


finished in 5.04s, 937621.40 req/s, 123.40MB/s
requests: 4688107 total, 4711107 started, 4688107 done, 4688107 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 4688107 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 617.00MB (646971965) total, 505.21MB (529756091) headers (space savings 9.60%), 31.30MB (32816749) data
                     min         max         mean         sd        +/- sd
time for request:      299us     19.52ms      3.20ms      1.89ms    59.42%
time for connect:     5.25ms     28.75ms     14.97ms      6.63ms    57.39%
time to 1st byte:     9.68ms     37.08ms     25.82ms      5.01ms    77.94%
req/s           :       0.00    93625.12     5653.82    14569.09    91.80%
[info] CPU 1060.7% | Mem 682MiB

=== Best: 930179 req/s (CPU: 1060.7%, Mem: 682MiB) ===
[info] saved results/unary-grpc-tls/256/swerver.json
httparena-bench-swerver
httparena-bench-swerver

==============================================
=== swerver / unary-grpc-tls / 1024c (tool=h2load) ===
==============================================
[info] waiting for server...
[info] gRPC server ready

[run 1/3]
starting benchmark...
% of clients started
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2


63. Stopping all clients.
48Stopped all clients for thread #63
. Stopping all clients.

. Stopping all clients.. Stopping all clients.Main benchmark duration is over for thread #37. Stopping all clients.
33
. Stopping all clients.

. Stopping all clients.
0. Stopping all clients.
49Stopped all clients for thread #18
. Stopping all clients.

45. Stopping all clients.
30. Stopping all clients.

35. Stopping all clients.Main benchmark duration is over for thread #12. Stopping all clients.



7. Stopping all clients.



finished in 5.06s, 38602.20 req/s, 5.08MB/s
requests: 193011 total, 276311 started, 193011 done, 193011 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 193011 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 25.42MB (26653157) total, 20.80MB (21810243) headers (space savings 9.60%), 1.29MB (1351077) data
                     min         max         mean         sd        +/- sd
time for request:      697us     66.10ms     14.02ms      3.51ms    90.05%
time for connect:     3.04ms    100.00ms     46.85ms     27.86ms    57.50%
time to 1st byte:    24.37ms    128.03ms     51.73ms     20.66ms    85.23%
req/s           :       0.00    16463.52      261.54     1004.71    95.21%
[info] CPU 69.1% | Mem 517MiB

[run 2/3]
starting benchmark...

TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
10Main benchmark duration is over for thread #Stopped all clients for thread #. Stopping all clients.30
58. Stopping all clients.


. Stopping all clients.
33. Stopping all clients.

finished in 5.06s, 2250.80 req/s, 305.85KB/s
requests: 11254 total, 80454 started, 11254 done, 11254 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 11254 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.49MB (1565962) total, 1.21MB (1271702) headers (space savings 9.60%), 76.93KB (78778) data
                     min         max         mean         sd        +/- sd
time for request:      659us     23.47ms      5.77ms      3.92ms    90.83%
time for connect:     3.87ms     81.38ms     36.89ms     22.14ms    58.24%
time to 1st byte:    11.26ms     61.78ms     38.73ms      5.34ms    88.82%
req/s           :       0.00    24717.39      209.90     1055.89    96.09%
[info] CPU 89.5% | Mem 500MiB

[run 3/3]
starting benchmark...
59.
23.
569.
40.
.
25.
.
46.


TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
.
55.
27.
17. Stopping all clients.Main benchmark duration is over for thread #Main benchmark duration is over for thread #. Stopping all clients.Main benchmark duration is over for thread #. Stopping all clients.

14Main benchmark duration is over for thread #62
2145. Stopping all clients.61
25. Stopping all clients.
. Stopping all clients.. Stopping all clients.




63. Stopping all clients.Stopped all clients for thread #
13Stopped all clients for thread #. Stopping all clients.
63

48
. Stopping all clients.17

41Stopped all clients for thread #46
15

1

38Stopped all clients for thread #10
. Stopping all clients.
. Stopping all clients.Stopped all clients for thread #60

32
. Stopping all clients.
33. Stopping all clients.
44. Stopping all clients.Stopped all clients for thread #3

44
11Stopped all clients for thread #47
. Stopping all clients.

27. Stopping all clients.
. Stopping all clients.Main benchmark duration is over for thread #
57Stopped all clients for thread #35


finished in 5.07s, 2241.20 req/s, 304.98KB/s
requests: 11206 total, 82706 started, 11206 done, 11206 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 11206 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.49MB (1561507) total, 1.21MB (1266278) headers (space savings 9.60%), 76.60KB (78442) data
                     min         max         mean         sd        +/- sd
time for request:      382us     32.51ms      5.95ms      4.72ms    85.03%
time for connect:     4.34ms     81.00ms     37.90ms     21.90ms    59.72%
time to 1st byte:    11.48ms     81.83ms     41.71ms      8.21ms    89.44%
req/s           :       0.00    19844.67      215.11      957.35    94.73%
[info] CPU 9.7% | Mem 500MiB

=== Best: 38144 req/s (CPU: 69.1%, Mem: 517MiB) ===
[info] saved results/unary-grpc-tls/1024/swerver.json
httparena-bench-swerver
httparena-bench-swerver
[info] skip: swerver does not subscribe to echo-ws
[info] skip: swerver does not subscribe to echo-ws-pipeline
[info] skip: swerver does not subscribe to echo-ws-limited
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/swerver.json - 38 new, 38 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@justinGrosvenor

Copy link
Copy Markdown
Contributor Author

/benchmark -f swerver --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ /benchmark --save cannot start: main has diverged and cannot be auto-merged into this branch. Please merge or rebase main manually, push, and re-run /benchmark --save.

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@justinGrosvenor

Copy link
Copy Markdown
Contributor Author

/benchmark -f swerver --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: swerver | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 3,486,638 6518.8% 1.0GiB ~0% ~0%
baseline 4096 3,712,011 6573.4% 1.0GiB ~0% ~0%
pipelined 512 24,039,932 6811.7% 1021MiB ~0% ~0%
pipelined 4096 23,971,318 6660.1% 1.0GiB ~0% ~0%
limited-conn 512 2,297,417 5903.5% 1.0GiB ~0% ~0%
limited-conn 4096 2,636,694 6149.5% 1.1GiB ~0% ~0%
json 4096 1,874,344 6640.6% 1.1GiB ~0% ~0%
json-comp 512 385,432 5962.5% 1.0GiB ~0% ~0%
json-comp 4096 424,055 6387.9% 1.1GiB ~0% ~0%
json-comp 16384 419,124 6353.9% 1.2GiB ~0% ~0%
json-tls 4096 1,512,815 6543.2% 1.3GiB ~0% ~0%
upload 32 2,112 1991.3% 2.5GiB ~0% ~0%
upload 256 2,202 5207.6% 2.6GiB ~0% ~0%
api-4 256 65,256 336.4% 114MiB ~0% ~0%
api-16 1024 250,097 1411.4% 398MiB ~0% ~0%
static 1024 1,409,015 5718.2% 1.1GiB ~0% ~0%
static 4096 1,336,018 6130.2% 1.3GiB ~0% ~0%
static 6800 1,192,586 6391.5% 1.4GiB ~0% ~0%
static-tls 1024 1,093,759 6460.1% 1.2GiB ~0% ~0%
static-tls 4096 702,141 6573.8% 1.5GiB ~0% ~0%
static-tls 6800 631,994 6572.6% 1.8GiB ~0% ~0%
async-db 1024 368,075 3821.4% 1.1GiB ~0% ~0%
fortunes 1024 293,822 3738.6% 1.0GiB ~0% ~0%
baseline-h2 256 3,974,866 5672.4% 1.2GiB ~0% ~0%
baseline-h2 1024 4,223,088 6095.2% 1.6GiB ~0% ~0%
static-h2 256 1,136,015 6493.2% 1.5GiB ~0% ~0%
static-h2 1024 1,085,374 6524.4% 2.2GiB ~0% ~0%
baseline-h2c 256 12,617,730 4306.4% 1.1GiB ~0% ~0%
baseline-h2c 1024 12,724,647 4341.0% 1.5GiB ~0% ~0%
baseline-h2c 4096 11,624,948 3907.6% 3.0GiB ~0% ~0%
json-h2c 1024 4,602,368 6483.9% 1.5GiB ~0% ~0%
json-h2c 4096 4,465,673 6517.9% 3.1GiB ~0% ~0%
baseline-h3 64 904,428 4292.9% 981MiB ~0% ~0%
static-h3 64 417,474 3656.0% 1.2GiB ~0% ~0%
unary-grpc 256 6,820,461 2705.5% 1.6GiB ~0% ~0%
unary-grpc 1024 6,724,743 2838.2% 2.0GiB ~0% ~0%
unary-grpc-tls 256 863,301 972.6% 678MiB ~0% ~0%
unary-grpc-tls 1024 3,279 71.3% 501MiB ~0% ~0%
Full log
                     min         max         mean         sd        +/- sd
time for request:      357us     34.95ms      3.96ms      3.61ms    90.88%
time for connect:     2.67ms     29.31ms     15.65ms      7.25ms    57.85%
time to 1st byte:     5.43ms     47.97ms     26.08ms      6.84ms    81.08%
req/s           :       0.00    93009.90     5438.69    15188.30    94.14%
[info] CPU 972.6% | Mem 678MiB

=== Best: 863301 req/s (CPU: 972.6%, Mem: 678MiB) ===
[info] saved results/unary-grpc-tls/256/swerver.json
httparena-bench-swerver
httparena-bench-swerver

==============================================
=== swerver / unary-grpc-tls / 1024c (tool=h2load) ===
==============================================
[info] waiting for server...
[info] gRPC server ready

[run 1/3]
starting benchmark...


.Main benchmark duration is started for thread #59.

58.
20.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
1. Stopping all clients.Stopped all clients for thread #41


. Stopping all clients.Main benchmark duration is over for thread #48. Stopping all clients.


. Stopping all clients.
3
52Main benchmark duration is over for thread #. Stopping all clients.Stopped all clients for thread #57

20. Stopping all clients.
38Stopped all clients for thread #
. Stopping all clients.
31
46. Stopping all clients.

22. Stopping all clients.
. Stopping all clients.Stopped all clients for thread #11


finished in 5.07s, 2301.40 req/s, 313.25KB/s
requests: 11507 total, 87907 started, 11507 done, 11507 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 11507 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.53MB (1603848) total, 1.24MB (1300291) headers (space savings 9.60%), 78.66KB (80549) data
                     min         max         mean         sd        +/- sd
time for request:      711us     25.17ms      5.86ms      3.89ms    85.25%
time for connect:     3.79ms     89.04ms     40.74ms     24.32ms    58.77%
time to 1st byte:    15.26ms     52.42ms     40.98ms      6.67ms    82.50%
req/s           :       0.00    13756.58      208.20      795.25    91.80%
[info] CPU 94.6% | Mem 499MiB

[run 2/3]
starting benchmark...
23.
.
15.
17.
48.
48.
43.
.

32.
29.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
5.

. Stopping all clients.

. Stopping all clients.Main benchmark duration is over for thread #10. Stopping all clients.
0. Stopping all clients.



34. Stopping all clients.Main benchmark duration is over for thread #
. Stopping all clients.Stopped all clients for thread #Stopped all clients for thread #38
733. Stopping all clients.

55Stopped all clients for thread #
016Stopped all clients for thread #. Stopping all clients.7


4
34. Stopping all clients.
20Stopped all clients for thread #15
47


19. Stopping all clients.
. Stopping all clients.


finished in 5.08s, 2480.40 req/s, 337.03KB/s
requests: 12402 total, 89802 started, 12402 done, 12402 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 12402 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.65MB (1725586) total, 1.34MB (1401426) headers (space savings 9.60%), 84.78KB (86814) data
                     min         max         mean         sd        +/- sd
time for request:      458us     53.65ms      8.13ms      7.18ms    83.57%
time for connect:     4.25ms     97.23ms     45.42ms     26.62ms    59.04%
time to 1st byte:    11.21ms     93.86ms     47.07ms     10.80ms    84.00%
req/s           :       0.00    17423.15      210.30      905.87    94.92%
[info] CPU 9.6% | Mem 501MiB

[run 3/3]
starting benchmark...
progress: 93Main benchmark duration is started for thread #% of clients started14
.
TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
57.
1Main benchmark duration is started for thread #2.
.


.
.50.

. Stopping all clients.Stopped all clients for thread #14

0. Stopping all clients.

60. Stopping all clients.Main benchmark duration is over for thread #1. Stopping all clients.



26Stopped all clients for thread #. Stopping all clients.
48
42. Stopping all clients.

. Stopping all clients.10
23Stopped all clients for thread #. Stopping all clients.
6
35Stopped all clients for thread #Stopped all clients for thread #4463

61
. Stopping all clients.
. Stopping all clients.Stopped all clients for thread #Stopped all clients for thread #562


22. Stopping all clients.


. Stopping all clients.Stopped all clients for thread #
. Stopping all clients.Main benchmark duration is over for thread #47
57. Stopping all clients.

. Stopping all clients.

32. Stopping all clients.Stopped all clients for thread #


. Stopping all clients.
. Stopping all clients.32
50




43

finished in 5.08s, 3332.20 req/s, 453.08KB/s
requests: 16661 total, 59661 started, 16661 done, 16661 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 16661 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 2.21MB (2319780) total, 1.80MB (1882693) headers (space savings 9.60%), 113.89KB (116627) data
                     min         max         mean         sd        +/- sd
time for request:      420us     38.57ms      7.97ms      7.38ms    79.41%
time for connect:     3.75ms     42.53ms     22.31ms     10.12ms    60.70%
time to 1st byte:    14.88ms     77.08ms     40.38ms      8.02ms    79.63%
req/s           :       0.00    18279.77      298.97      890.02    88.96%
[info] CPU 71.3% | Mem 501MiB

=== Best: 3279 req/s (CPU: 71.3%, Mem: 501MiB) ===
[info] saved results/unary-grpc-tls/1024/swerver.json
httparena-bench-swerver
httparena-bench-swerver
[info] skip: swerver does not subscribe to echo-ws
[info] skip: swerver does not subscribe to echo-ws-pipeline
[info] skip: swerver does not subscribe to echo-ws-limited
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/swerver.json - 38 new, 38 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@justinGrosvenor justinGrosvenor changed the title swerver: resubmit alpha.29 as experimental with static TLS and gRPC swerver: resubmit alpha.30 as experimental with full protocol coverage Aug 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@justinGrosvenor

Copy link
Copy Markdown
Contributor Author

/benchmark -f swerver --save

@github-actions

Copy link
Copy Markdown
Contributor

👋 Benchmark request received. A collaborator will review and approve the run.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: swerver | Test: all tests

Test Conn RPS CPU Mem Δ RPS Δ Mem
baseline 512 3,493,106 6511.5% 1.0GiB +0.2% ~0%
baseline 4096 3,665,627 6358.2% 1.0GiB -1.2% ~0%
pipelined 512 23,453,251 6808.2% 1021MiB -2.4% ~0%
pipelined 4096 23,561,030 6790.9% 1.0GiB -1.7% ~0%
limited-conn 512 2,291,118 5886.4% 1.0GiB -0.3% ~0%
limited-conn 4096 2,620,134 6294.7% 1.1GiB -0.6% ~0%
json 4096 1,851,933 6635.8% 1.1GiB -1.2% ~0%
json-comp 512 377,320 5961.9% 1.0GiB -2.1% ~0%
json-comp 4096 407,780 6389.7% 1.1GiB -3.8% ~0%
json-comp 16384 414,296 6308.1% 1.2GiB -1.2% ~0%
json-tls 4096 1,502,272 6541.8% 1.3GiB -0.7% ~0%
upload 32 2,112 1913.4% 2.5GiB ~0% ~0%
upload 256 2,199 5062.9% 2.6GiB -0.1% ~0%
api-4 256 65,128 338.7% 119MiB -0.2% +4.4%
api-16 1024 246,909 1360.7% 386MiB -1.3% -3.0%
static 1024 1,417,442 5660.2% 1.1GiB +0.6% ~0%
static 4096 1,333,277 6257.3% 1.3GiB -0.2% ~0%
static 6800 1,195,472 6155.1% 1.4GiB +0.2% ~0%
static-tls 1024 1,101,306 6428.3% 1.1GiB +0.7% -8.3%
static-tls 4096 698,946 6471.5% 1.6GiB -0.5% +6.7%
static-tls 6800 637,256 6428.4% 1.8GiB +0.8% ~0%
async-db 1024 369,867 3812.1% 1.1GiB +0.5% ~0%
fortunes 1024 290,894 3495.2% 1.1GiB -1.0% +10.0%
baseline-h2 256 3,878,127 5575.1% 1.2GiB -2.4% ~0%
baseline-h2 1024 4,203,408 6277.6% 1.7GiB -0.5% +6.2%
static-h2 256 1,134,540 6404.5% 1.4GiB -0.1% -6.7%
static-h2 1024 1,083,152 6315.5% 2.3GiB -0.2% +4.5%
baseline-h2c 256 12,451,341 4325.0% 1.1GiB -1.3% ~0%
baseline-h2c 1024 12,505,467 4269.2% 1.5GiB -1.7% ~0%
baseline-h2c 4096 11,606,256 3949.0% 3.0GiB -0.2% ~0%
json-h2c 1024 4,526,493 6464.6% 1.5GiB -1.6% ~0%
json-h2c 4096 4,409,384 6346.4% 3.1GiB -1.3% ~0%
baseline-h3 64 901,515 4225.3% 1.2GiB -0.3% +25.3%
static-h3 64 406,802 3604.2% 1.2GiB -2.6% ~0%
unary-grpc 256 6,790,374 2745.0% 1.6GiB -0.4% ~0%
unary-grpc 1024 6,683,122 2867.1% 2.0GiB -0.6% ~0%
unary-grpc-tls 256 753,772 883.2% 665MiB -12.7% -1.9%
unary-grpc-tls 1024 3,669 87.3% 501MiB +11.9% ~0%
Full log

=== Best: 753772 req/s (CPU: 883.2%, Mem: 665MiB) ===
[info] saved results/unary-grpc-tls/256/swerver.json
httparena-bench-swerver
httparena-bench-swerver

==============================================
=== swerver / unary-grpc-tls / 1024c (tool=h2load) ===
==============================================
[info] waiting for server...
[info] gRPC server ready

[run 1/3]
starting benchmark...
18.
18.progress: 
81% of clients started
56.

60.
.Warm-up phase is over for thread #Warm-up phase is over for thread #15.

57.
.Main benchmark duration is started for thread #32.


25Main benchmark duration is started for thread #9.
.

TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2

15Main benchmark duration is over for thread #. Stopping all clients.24
. Stopping all clients.Stopped all clients for thread #15
14


. Stopping all clients.Stopped all clients for thread #18
24
. Stopping all clients.Main benchmark duration is over for thread #60. Stopping all clients.
0Stopped all clients for thread #Main benchmark duration is over for thread #Main benchmark duration is over for thread #55Main benchmark duration is over for thread #46

14

. Stopping all clients.Main benchmark duration is over for thread #

. Stopping all clients.


22. Stopping all clients.
27. Stopping all clients.
40. Stopping all clients.
23Main benchmark duration is over for thread #26Stopped all clients for thread #. Stopping all clients.45

3343. Stopping all clients.
52. Stopping all clients.
. Stopping all clients.Stopped all clients for thread #
7Main benchmark duration is over for thread #53. Stopping all clients.
. Stopping all clients.
. Stopping all clients.

finished in 5.07s, 3720.60 req/s, 505.21KB/s
requests: 18603 total, 100803 started, 18603 done, 18603 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 18603 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 2.47MB (2586664) total, 2.00MB (2102139) headers (space savings 9.60%), 127.17KB (130221) data
                     min         max         mean         sd        +/- sd
time for request:      495us     48.49ms      7.28ms      6.85ms    83.26%
time for connect:     3.73ms    101.58ms     46.84ms     28.53ms    58.15%
time to 1st byte:    11.83ms     92.79ms     48.48ms      9.97ms    74.31%
req/s           :       0.00    47189.43      292.06     1807.54    98.05%
[info] CPU 87.3% | Mem 501MiB

[run 2/3]
starting benchmark...

.
progress: Warm-up phase is over for thread #13.
87% of clients started
31.
20.
30Main benchmark duration is started for thread #52.
.

TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits
Application protocol: h2
. Stopping all clients.
10
1720Main benchmark duration is over for thread #Stopped all clients for thread #. Stopping all clients.. Stopping all clients.Main benchmark duration is over for thread #41Main benchmark duration is over for thread #Stopped all clients for thread #
. Stopping all clients.
816

6. Stopping all clients.Stopped all clients for thread #59. Stopping all clients.
. Stopping all clients.2Stopped all clients for thread #

54
52
31Stopped all clients for thread #23
38
34. Stopping all clients.


17

45


11. Stopping all clients.
20Stopped all clients for thread #
5
. Stopping all clients.Stopped all clients for thread #. Stopping all clients.Stopped all clients for thread #

. Stopping all clients.Stopped all clients for thread #36


26
45. Stopping all clients.

14Stopped all clients for thread #36

49
31

47. Stopping all clients.

finished in 5.06s, 2550.00 req/s, 346.70KB/s
requests: 12750 total, 95250 started, 12750 done, 12750 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 12750 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.69MB (1775127) total, 1.37MB (1440750) headers (space savings 9.60%), 87.16KB (89250) data
                     min         max         mean         sd        +/- sd
time for request:      485us     72.09ms      6.07ms      6.80ms    90.32%
time for connect:     3.92ms     97.45ms     45.77ms     26.97ms    58.79%
time to 1st byte:    25.29ms     89.83ms     40.87ms      8.31ms    85.43%
req/s           :       0.00    49305.91      209.01     1591.82    99.22%
[info] CPU 9.9% | Mem 501MiB

[run 3/3]
starting benchmark...
5.
38.

TLS Protocol: TLSv1.3
Cipher: TLS_AES_128_GCM_SHA256
Server Temp Key: X25519 253 bits

24.
.
39Main benchmark duration is started for thread #26.
.
12.
37.
42. Stopping all clients.
. Stopping all clients.Stopped all clients for thread #30

18. Stopping all clients.

57. Stopping all clients.
62


. Stopping all clients.Main benchmark duration is over for thread #Stopped all clients for thread #
27Stopped all clients for thread #Main benchmark duration is over for thread #62
26. Stopping all clients.
. Stopping all clients.Main benchmark duration is over for thread #
53. Stopping all clients.


55Stopped all clients for thread #Stopped all clients for thread #. Stopping all clients.43

22
50

finished in 5.08s, 2698.20 req/s, 366.21KB/s
requests: 13491 total, 90491 started, 13491 done, 13491 succeeded, 0 failed, 0 errored, 0 timeout
status codes: 13491 2xx, 0 3xx, 0 4xx, 0 5xx
traffic: 1.79MB (1875011) total, 1.45MB (1524483) headers (space savings 9.60%), 92.22KB (94437) data
                     min         max         mean         sd        +/- sd
time for request:      480us     25.75ms      4.98ms      4.20ms    91.85%
time for connect:     4.29ms     92.78ms     43.28ms     25.41ms    58.57%
time to 1st byte:    10.67ms     98.67ms     42.91ms     11.31ms    92.41%
req/s           :       0.00    31947.84      217.16     1267.70    99.12%
[info] CPU 81.5% | Mem 499MiB

=== Best: 3669 req/s (CPU: 87.3%, Mem: 501MiB) ===
[info] saved results/unary-grpc-tls/1024/swerver.json
httparena-bench-swerver
httparena-bench-swerver
[info] skip: swerver does not subscribe to echo-ws
[info] skip: swerver does not subscribe to echo-ws-pipeline
[info] skip: swerver does not subscribe to echo-ws-limited
[info] rebuilding site/data/*.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/frameworks.json
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/results/swerver.json - 38 new, 38 total
[updated] /home/diogo/actions-runner/_work/HttpArena/HttpArena/site/data/current.json
[info] done
httparena-postgres
[info] restoring loopback MTU to 65536

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ /benchmark --save aborted: main has diverged and cannot be auto-merged into this branch. Please merge or rebase main manually, push, and re-run /benchmark --save.

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Framework: swerver | Test: all tests

No results captured

Full log

@MDA2AV
MDA2AV merged commit 7f74cc1 into MDA2AV:main Aug 25, 2026
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