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

🥇 4 Gold · 🥈 4 Silver · 🥉 4 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 7
🥇 GoldWithin its languageJS · HTTP/1.11 of 6
🥇 GoldTest profileGateway · Gateway (H2)1 of 6
🥇 GoldTest profileGateway · Gateway (H3)1 of 6
🥈 SilverTest profileConcurrency · Async Delay2 of 73
🥈 SilverTest profileEfficiency · Latency-10K2 of 76
🥈 SilverTest profileWebSocket · Echo Short-lived2 of 14
🥈 SilverTest profileWorkload · JSON Comp2 of 73
🥉 BronzeFamily compositeComposite · WebSocket3 of 23
🥉 BronzeTest profileGateway · Production Stack3 of 5
🥉 BronzeTest profileWebSocket · Echo3 of 23
🥉 BronzeTest profileWorkload · JSON TLS3 of 74

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.15 of 766222
Gateway1 of 72536
WebSocket3 of 232431

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,766,5932.32ms3.02ms6793.6%2.5GiB
ConnectionPipelined4,09634,035,7021.92ms3.26ms6712.7%1.9GiB
ConnectionShort-lived4,0961,574,8052.59ms10.30ms6620.4%2.5GiB
ConcurrencyAsync Delay32,0002,156,34314.73ms17.30ms6386.7%5.6GiB
EfficiencyLatency-10K1,0249,98380.3us120.0us37.5%2.1GiB
EfficiencyLatency-1M1,024998,039126.8us252.0us3650.6%2.4GiB
EfficiencyLatency-500K/81,024338,0483174777.0us7260160.0us785.1%361MiB
WorkloadJSON Comp4,096493,2368.28ms26.10ms6346.4%7.6GiB
WorkloadJSON Comp16,384511,74331.69ms76.40ms6254.5%8.7GiB
WorkloadJSON TLS4,0961,104,3033.70ms93.14ms6573.3%8.1GiB
Workload8Gbit51249,367110.7us153.0us334.4%2.7GiB
WorkloadStatic TLS1,024628,6041.63ms17.30ms6583.9%3.1GiB
DatabaseAsync DB1,024234,2973.85ms31.10ms5799.4%4.1GiB
DatabaseFortunes1,02468,59613.62ms22.10ms6505.7%4.2GiB
GatewayGateway (H2)512294,09856.12ms465.18ms5298.9%4.8GiB
GatewayGateway (H2)1,024270,947105.29ms1.07s5536.6%5.4GiB
GatewayGateway (H3)6490,34522.55ms83.77ms3293.6%3.5GiB
GatewayGateway (H3)25662,228127.41ms756.51ms2400.2%4.4GiB
GatewayProduction Stack256121,11534.54ms1.14s2894.0%3.6GiB
GatewayProduction Stack1,024105,345133.45ms3.95s2746.4%4.1GiB
WebSocketEcho5123,692,974138us364us6382.0%2.2GiB
WebSocketEcho4,0963,775,3281.08ms2.30ms6540.1%2.2GiB
WebSocketEcho16,3843,497,1914.66ms9.21ms6138.2%2.4GiB
WebSocketEcho Pipelined51223,414,387349us973us6642.4%2.2GiB
WebSocketEcho Pipelined4,09623,892,1982.74ms5.07ms6533.1%2.3GiB
WebSocketEcho Pipelined16,38422,702,30011.34ms14.80ms6288.5%2.4GiB
WebSocketEcho Short-lived5122,076,459150us537us5505.1%2.2GiB
WebSocketEcho Short-lived4,0962,558,7031.05ms2.93ms6270.4%2.3GiB

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
morojs5687-9%head to head
hyper-express4639-25%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