/bunzer

the fastest javascript server

Primary LanguageJavaScript

Bunzer - the fastest javascript server

  • 1 file, 0 dependencies
  • 25x faster than Express based on this benchmark
Framework Average Get (/) Params, query & header Post JSON
bunzer (bun) 298,366.237 362,260.14 270,062.97 262,775.6
uws (node) 259,184.253 314,131.09 260,835.69 202,585.98
bun (bun) 217,784.367 256,266.44 199,123.36 197,963.3
elysia (bun) 215,080.713 250,485.6 205,187.71 189,568.83
bun-web-standard (bun) 199,598.013 220,924.03 201,743.12 176,126.89
stricjs (bun) 195,869.997 225,208.1 186,072.39 176,329.5
vixeny (bun) 189,681.683 218,870.19 185,639.64 164,535.22
nhttp (bun) 171,972.41 206,435.07 170,289.16 139,193
hono (bun) 166,691.877 210,994.98 165,364.33 123,716.32
hyper-express (node) 165,968.12 236,069.89 193,232.91 68,601.56
baojs (bun) 133,058.503 167,558.97 132,522.8 99,093.74
nbit (bun) 113,735.613 137,937.14 115,139.05 88,130.65
hono (deno) 109,047.02 129,770.14 120,337.58 77,033.34
hyperbun (bun) 104,449.793 124,138.08 107,202.7 82,008.6
h3 (node) 86,557.917 95,180.51 84,370.79 80,122.45
fast (deno) 74,739.957 88,251.24 75,445.2 60,523.43
cheetah (deno) 58,555.197 110,375.11 49,290.99 15,999.49
fastify (node) 52,983.053 57,229.67 57,187.39 44,532.1
oak (deno) 39,889.113 46,447.17 43,050.73 30,169.44
abc (deno) 33,383.993 42,279.4 35,024.77 22,847.81
koa (node) 32,620.467 35,640.15 34,624.91 27,596.34
hapi (node) 23,069.607 34,472.45 12,411.66 22,324.71
express (bun) 22,332.733 31,868.31 25,077.46 10,052.43
hono (node) 13,252.393 12,776.93 15,258.05 11,722.2
express (node) 12,913.697 13,658.09 14,221.31 10,861.69
nest (node) 11,989.067 12,905.22 13,060.53 10,001.45
acorn (deno) 8,149.053 13,112.01 6,375.24 4,959.91

Documentation / Usage Example

import {serve, get, post, response} from 'bunzer'

get('/hello',       req => 'Hello, World!')
get('/json',        req => ({hello: 'world'}))
get('/hello/:name', req => `Hello, ${req.params.name}!`)
get('/status',      req => response(`I'm a teapot`, {status: 418}))
get('/setheaders',  req => response(`brrrr`, {headers: {'X-Powered-By': 'bunzer'}}))
get('/getheaders',  req => req.headers['user-agent'])
get('/ip',          req => req.ip)
get('/query',       req => req.query.limit) // /query?limit=10
get('/error',       req => null.ptr)
get('/async', async req => (await fetch('https://example.com')).text())

post('/body', req => {
  const {username, message} = JSON.parse(req.body)
})

serve({hostname: '127.0.0.1', port: 8080, public_folder: 'public'})