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

🥇 3 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
🥇 GoldWithin its languageJS · HTTP/1.11 of 5
🥇 GoldTest profileGateway · Gateway (H3)1 of 3
🥈 SilverFamily compositeComposite · WebSocket2 of 15
🥈 SilverTest profileGateway · Gateway (H2)2 of 3
🥈 SilverTest profileWebSocket · Echo2 of 15
🥈 SilverTest profileWebSocket · Echo Pipelined2 of 12
🥈 SilverTest profileWebSocket · Echo Short-lived2 of 6
🥈 SilverTest profileWorkload · JSON Comp2 of 67
🥉 BronzeFamily compositeComposite · HTTP/1.13 of 69

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.13 of 695116
Gateway1 of 42388
WebSocket2 of 152444

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0961,646,8202.49ms3.21ms6791.8%2.6GiB
ConnectionPipelined4,09632,530,2682.01ms3.77ms6420.8%2.1GiB
ConnectionShort-lived4,0961,485,2682.74ms11.00ms6611.2%2.7GiB
ConcurrencyAsync Delay32,0002,076,21015.29ms17.50ms6403.9%5.7GiB
EfficiencyLatency-10K1,0249,98286.3us121.0us37.2%2.1GiB
EfficiencyLatency-1M1,024997,869132.6us263.0us3911.7%2.5GiB
WorkloadJSON Comp4,096478,0138.55ms26.90ms6373.7%7.6GiB
WorkloadJSON Comp16,384494,72832.76ms78.30ms6222.3%8.5GiB
WorkloadJSON TLS4,0961,022,2334.02ms104.05ms6410.9%7.1GiB
Workload8Gbit51249,377111.2us159.0us330.3%2.7GiB
WorkloadStatic TLS1,024594,2891.72ms21.37ms6594.5%3.2GiB
DatabaseAsync DB1,024233,6343.81ms26.20ms5770.7%4.3GiB
DatabaseFortunes1,02468,67513.66ms23.50ms6497.8%4.2GiB
GatewayGateway (H2)512279,50056.54ms461.87ms5185.7%4.8GiB
GatewayGateway (H2)1,024264,856108.77ms1.51s5391.7%5.5GiB
GatewayGateway (H3)6490,25422.57ms83.92ms3337.2%3.5GiB
GatewayGateway (H3)25661,282129.87ms776.02ms2408.6%4.6GiB
GatewayProduction Stack256116,89435.91ms161.57ms2769.4%3.6GiB
GatewayProduction Stack1,024105,309130.92ms4.60s2641.7%4.3GiB
WebSocketEcho5123,689,829138us406us6512.5%2.3GiB
WebSocketEcho4,0963,777,2261.08ms2.25ms6276.7%2.4GiB
WebSocketEcho16,3843,523,1054.62ms9.15ms6131.7%2.5GiB
WebSocketEcho Pipelined51224,189,686337us890us6726.6%2.3GiB
WebSocketEcho Pipelined4,09624,296,6042.69ms5.17ms6538.9%2.4GiB
WebSocketEcho Pipelined16,38423,202,56011.13ms14.30ms6313.0%2.6GiB
WebSocketEcho Short-lived5122,076,963147us522us5635.9%2.3GiB
WebSocketEcho Short-lived4,0962,551,2791.06ms2.88ms6264.8%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
fulmine.js-tuned5160+1%head to head
hyper-express4068-20%head to head
ultimate-express3760-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