HttpArena
Frameworks

bun

Flagship · TS · standard configuration · completeness 3/4

Bun.serve, Bun's own HTTP server, with no framework on top and one process per core sharing the ports. The same routes serve every protocol: HTTP/1.1 on 8080 and over TLS on 8081, h2c on 8082 and h2 plus HTTP/3 on 8443 through Bun's experimental `http2: true` and `http3: true` flags (QUIC is Bun's own lsquic, no proxy in front).

Achievements

🥇 9 Gold · 🥈 1 Silver · 🥉 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
🥇 GoldFamily compositeComposite · HTTP/21 of 18
🥇 GoldFamily compositeComposite · HTTP/31 of 7
🥇 GoldWithin its languageTS · HTTP/1.11 of 4
🥇 GoldTest profileHTTP/2 · Baseline1 of 17
🥇 GoldTest profileHTTP/2 · Baseline (h2c)1 of 14
🥇 GoldTest profileHTTP/2 · JSON (h2c)1 of 14
🥇 GoldTest profileHTTP/3 · Baseline1 of 7
🥇 GoldTest profileHTTP/3 · Static1 of 7
🥇 GoldTest profileWorkload · JSON Comp1 of 68
🥈 SilverTest profileHTTP/2 · Static2 of 16
🥉 BronzeFamily compositeComposite · HTTP/1.13 of 71
🥉 BronzeTest profileConcurrency · Async Delay3 of 67
🥉 BronzeTest profileWorkload · JSON TLS3 of 66

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 716065
HTTP/21 of 183362
HTTP/31 of 71950

Every result

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

CategoryProfileConnsReq/secAvgp99CPUMemory
ConnectionBaseline4,0961,926,3862.13ms3.84ms6737.0%1.2GiB
ConnectionPipelined4,0965,529,92811.85ms15.20ms6393.6%328MiB
ConnectionShort-lived4,0961,672,4442.43ms8.61ms6283.0%1.1GiB
ConcurrencyAsync Delay32,0001,949,53216.33ms22.30ms6385.5%1.5GiB
EfficiencyLatency-10K1,0249,98282.4us125.0us54.0%394MiB
EfficiencyLatency-1M1,024997,935140.7us429.0us4730.8%967MiB
EfficiencyLatency-500K/81,024337,3933193429.7us7223296.0us782.5%181MiB
WorkloadJSON Comp4,096460,7168.87ms20.90ms6322.9%1.1GiB
WorkloadJSON Comp16,384460,81635.22ms61.00ms6179.2%1.1GiB
WorkloadJSON TLS4,0961,081,7083.80ms41.48ms6292.0%966MiB
Workload8Gbit51249,237105.5us180.0us397.7%476MiB
WorkloadStatic TLS1,024481,4072.28ms62.40ms6530.9%1.0GiB
DatabaseAsync DB1,024283,0493.07ms15.90ms5120.9%2.1GiB
DatabaseFortunes1,02482,4088.97ms24.00ms6416.8%1.9GiB
HTTP/2Baseline2567,062,1663.54ms20.48ms6283.7%1.2GiB
HTTP/2Baseline1,0247,059,84113.46ms84.78ms6272.8%1.3GiB
HTTP/2Static256613,74814.32ms87.71ms6332.3%1.2GiB
HTTP/2Static1,024599,95751.83ms249.17ms6387.3%1.4GiB
HTTP/2Baseline (h2c)2567,306,7853.59ms23.23ms6203.3%1.3GiB
HTTP/2Baseline (h2c)1,0247,402,05113.25ms53.30ms6388.6%1.3GiB
HTTP/2Baseline (h2c)4,0967,262,66152.79ms150.50ms6177.6%1.3GiB
HTTP/2JSON (h2c)1,0242,245,99014.67ms67.74ms6289.2%1.0GiB
HTTP/2JSON (h2c)4,0962,218,79356.52ms178.21ms6221.8%1.1GiB
HTTP/3Baseline643,435,0341.04ms2.51ms3616.5%1.0GiB
HTTP/3Static64289,58714.81ms138.14ms5306.5%1.3GiB

Compared with

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

EntryCompositevs bun
elysia4272-30%head to head
hono-bun3327-45%head to head

Compare bun with any TS entry · Compare bun with any entry, in any language · Every TS entry, ranked

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