HttpArena
Frameworks

wastnet

Experimental · Java · standard configuration · completeness 4/4

wastnet 1.0.3 annotation MVC (wastnet-mvc: @RestController / @Endpoint / @PathParam / @WebSocket) on top of its own zero-dependency Java NIO engine. Standard configuration: a single AnnotationRouterHandler is shared by four listeners - :8080 plaintext HTTP/1.1 (carrying the WebSocket upgrade), :8081 HTTP/1.1 + TLS advertising ALPN http/1.1, :8082 h2c prior-knowledge, :8443 h2 over TLS with ALPN h2. Static files go through the framework's HttpResourceRoute (sendfile zero-copy, ETag/Last-Modified); dynamic JSON responses are compressed by the framework's built-in GZIP (HttpOptions.GZIP) and JSON is serialized per request by wast, the library wastnet's own MVC layer uses. Each listener gets a worker pool sized to the 64 available cores, and HTTP/1.1 pipelining is enabled through HttpOptions.PIPELINE_ENABLED (it is off by default). Both are documented production settings.

Achievements

🥇 1 Gold · 🥉 3 Bronze. Top three of a field, taken in this entry's own league: the family composite, the same composite among entries written in the same language, and each test profile it is scored on. Every field is the one the badges publish, so a medal and a badge always say the same thing. How medals are awarded.

MedalAwardFieldRank
🥇 GoldTest profileEfficiency · Latency-10K1 of 17
🥉 BronzeTest profileHTTP/2 · Baseline3 of 9
🥉 BronzeTest profileHTTP/2 · Baseline (h2c)3 of 10
🥉 BronzeTest profileHTTP/2 · Static3 of 9

Composite rank

Each profile of a family is worth 100 to the entry that leads it, and the composite is the sum over the family, less 2.5% for each of routing, middleware, request and response the entry does not do for you - its completeness factor, which the WebSocket and gRPC families do not carry. The field is this entry's own league: engines and reverse proxies are scored apart from frameworks. How it works.

FamilyRankComposite
HTTP/1.112 of 194430
HTTP/24 of 103088
WebSocket12 of 141762

Every result

Alpha Round, 31 runs. Requests per second is the best of three; latency, CPU and memory come from that run.

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0962,625,6001.39ms3.00ms6339.1%2.6GiB
ConnectionPipelined4,09613,432,0734.45ms11.00ms6397.8%4.4GiB
ConnectionShort-lived4,096696,3831.79ms15.50ms3304.8%1.5GiB
ConcurrencyAsync Delay32,000263,83386.77ms117.60ms1752.5%4.7GiB
EfficiencyLatency-10K1,0249,98370.0us107.0us30.1%1.2GiB
EfficiencyLatency-1M1,024997,845122.5us235.0us3004.7%1.4GiB
EfficiencyLatency-500K/81,024417,2401648466.6us3240960.0us789.5%1.3GiB
WorkloadJSON Comp4,096356,2399.98ms25.60ms6000.4%4.0GiB
WorkloadJSON Comp16,384356,75526.34ms52.60ms6269.7%5.6GiB
WorkloadJSON TLS4,0961,152,5804.26ms230.86ms6354.4%5.3GiB
Workload8Gbit51249,260111.2us129.0us255.9%1.5GiB
WorkloadStatic TLS1,024609,7561.78ms49.31ms6402.0%2.1GiB
DatabaseAsync DB1,024211,8714.30ms12.90ms3117.6%2.4GiB
DatabaseFortunes1,024106,3879.44ms19.40ms5369.5%5.6GiB
HTTP/2Baseline25613,881,1531.08ms23.07ms3812.6%4.3GiB
HTTP/2Baseline1,02413,474,0594.51ms116.41ms3732.9%6.5GiB
HTTP/2Static256698,48311.50ms43.39ms6364.6%2.6GiB
HTTP/2Static1,024684,32046.23ms136.07ms6190.5%3.4GiB
HTTP/2Baseline (h2c)25614,222,604956us9.07ms3339.1%3.7GiB
HTTP/2Baseline (h2c)1,02414,483,8933.72ms34.27ms3514.0%4.9GiB
HTTP/2Baseline (h2c)4,09612,274,39215.08ms72.41ms3737.0%6.3GiB
HTTP/2JSON (h2c)1,0242,796,43111.41ms51.83ms6299.5%4.6GiB
HTTP/2JSON (h2c)4,0962,559,25445.90ms122.28ms6192.2%5.9GiB
WebSocketEcho5123,222,021158us300us6570.8%1.0GiB
WebSocketEcho4,0963,197,5141.10ms2.42ms6423.2%2.0GiB
WebSocketEcho16,3843,194,3291.86ms4.38ms6268.4%1.9GiB
WebSocketEcho Pipelined51245,231,334180us337us6575.8%1.3GiB
WebSocketEcho Pipelined4,09645,128,2491.21ms2.67ms6611.4%2.4GiB
WebSocketEcho Pipelined16,38445,161,9242.03ms4.97ms6548.8%2.3GiB
WebSocketEcho Short-lived512695,24650us117us3059.5%1.4GiB
WebSocketEcho Short-lived4,096685,72650us122us2891.2%1.4GiB

Compared with

The Java entries around wastnet on the HTTP/1.1 composite, and the one leading them. The last column shows every profile side by side.

EntryCompositevs wastnet
vertx5585+26%head to head
cardigan5238+18%head to head
micronaut-production4574+3%head to head
helidon-tuned4268-4%head to head
micronaut4163-6%head to head

Compare wastnet with any Java entry · Compare wastnet with any entry, in any language · Every Java entry, ranked

Results updated · How the benchmark is run · The machine · Add or fix an entry