HttpArena
Frameworks

fulmine.js

Emerging · JS · engine: uwebsockets · standard configuration · completeness 4/4

fulmine.js (drop-in Express 5 on uWebSockets.js) with its own cluster option for multi-core scaling.

Achievements

🥇 5 Gold · 🥈 6 Silver · 🥉 1 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
🥇 GoldFamily compositeComposite · Gateway1 of 4
🥇 GoldFamily compositeComposite · WebSocket1 of 15
🥇 GoldWithin its languageJS · HTTP/1.11 of 5
🥇 GoldTest profileGateway · Gateway (H2)1 of 3
🥇 GoldTest profileGateway · Gateway (H3)1 of 3
🥈 SilverFamily compositeComposite · HTTP/1.12 of 71
🥈 SilverTest profileConcurrency · Async Delay2 of 67
🥈 SilverTest profileWebSocket · Echo2 of 15
🥈 SilverTest profileWebSocket · Echo Pipelined2 of 12
🥈 SilverTest profileWebSocket · Echo Short-lived2 of 6
🥈 SilverTest profileWorkload · JSON Comp2 of 68
🥉 BronzeTest profileEfficiency · Latency-1M3 of 71

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.12 of 716248
Gateway1 of 42534
WebSocket1 of 152455

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0961,654,7582.48ms3.38ms6794.4%2.7GiB
ConnectionPipelined4,09633,710,0541.94ms3.54ms6724.9%2.1GiB
ConnectionShort-lived4,0961,474,4492.76ms11.20ms6609.5%2.7GiB
ConcurrencyAsync Delay32,0002,092,32615.17ms18.00ms6391.7%5.7GiB
EfficiencyLatency-10K1,0249,98285.8us124.0us38.6%2.1GiB
EfficiencyLatency-1M1,024998,074133.5us263.0us3672.5%2.5GiB
EfficiencyLatency-500K/81,024325,6933417569.5us7956480.0us785.6%432MiB
WorkloadJSON Comp4,096479,6518.53ms27.20ms6370.7%7.7GiB
WorkloadJSON Comp16,384500,65232.42ms77.90ms6241.5%8.6GiB
WorkloadJSON TLS4,0961,068,4823.82ms43.33ms6436.1%6.7GiB
Workload8Gbit51249,272117.0us155.0us304.2%2.7GiB
WorkloadStatic TLS1,024598,4411.71ms17.75ms6594.5%3.3GiB
DatabaseAsync DB1,024231,4113.93ms31.20ms5704.7%4.3GiB
DatabaseFortunes1,02468,72413.62ms20.60ms6510.5%4.2GiB
GatewayGateway (H2)512291,04755.51ms431.63ms5245.0%4.7GiB
GatewayGateway (H2)1,024268,443107.47ms1.29s5349.9%5.5GiB
GatewayGateway (H3)6490,87222.40ms83.61ms3326.8%3.5GiB
GatewayGateway (H3)25661,410129.62ms761.87ms2431.9%3.7GiB
GatewayProduction Stack256120,03634.95ms130.20ms2849.0%3.6GiB
GatewayProduction Stack1,024105,652128.47ms3.83s2687.2%4.1GiB
WebSocketEcho5123,717,773137us361us6413.1%2.4GiB
WebSocketEcho4,0963,789,1071.08ms2.28ms6267.6%2.4GiB
WebSocketEcho16,3843,535,0384.61ms9.04ms6505.8%2.5GiB
WebSocketEcho Pipelined51224,200,214337us888us6684.3%2.4GiB
WebSocketEcho Pipelined4,09624,689,7282.65ms4.73ms6490.1%2.4GiB
WebSocketEcho Pipelined16,38423,267,73411.06ms14.80ms6271.9%2.6GiB
WebSocketEcho Short-lived5122,073,493144us517us5452.8%2.4GiB
WebSocketEcho Short-lived4,0962,568,0061.06ms3.05ms6039.3%2.4GiB

Compared with

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

EntryCompositevs fulmine.js
hyper-express4801-23%head to head
ultimate-express4584-27%head to head

Compare fulmine.js with any JS entry · Compare fulmine.js with any entry, in any language · Every JS entry, ranked

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