type
Serve.Options
Options for serve, with support for routes and a safer requirement for fetch
export default {
fetch: req => Response.json(req.url),
websocket: {
message(ws) {
ws.data.name; // string
},
},
} satisfies Bun.Serve.Options<{ name: string }>;Referenced types
interface HostnamePortServeOptions<WebSocketData>
- hostname?: string & {} | '0.0.0.0' | '127.0.0.1' | 'localhost'
The hostname the server listens on
"127.0.0.1" // Only listen locally - http1?: boolean
Listen for HTTP/1.1 over TCP. Set to
falsetogether withhttp3: trueto serve HTTP/3 only. - id?: null | string
Uniquely identify a server instance with an ID
When bun is started with the
--hotflag:Bun uses this string to hot reload the server without interrupting pending requests or websockets. If not provided, a value is generated. To disable hot reloading, set this value to
null.When bun is not started with the
--hotflag:This string has no effect.
- idleTimeout?: number
Sets the number of seconds to wait before timing out a connection due to inactivity.
- reusePort?: boolean
Whether the
SO_REUSEPORTflag should be set.This allows multiple processes to bind to the same port, which is useful for load balancing.
- tls?: TLSOptions | TLSOptions[]
Set options for using TLS with this server
const server = Bun.serve({ fetch: request => new Response("Welcome to Bun!"), tls: { cert: Bun.file("cert.pem"), key: Bun.file("key.pem"), ca: [Bun.file("ca1.pem"), Bun.file("ca2.pem")], }, });
interface UnixServeOptions<WebSocketData>
- id?: null | string
Uniquely identify a server instance with an ID
When bun is started with the
--hotflag:Bun uses this string to hot reload the server without interrupting pending requests or websockets. If not provided, a value is generated. To disable hot reloading, set this value to
null.When bun is not started with the
--hotflag:This string has no effect.
- tls?: TLSOptions | TLSOptions[]
Set options for using TLS with this server
const server = Bun.serve({ fetch: request => new Response("Welcome to Bun!"), tls: { cert: Bun.file("cert.pem"), key: Bun.file("key.pem"), ca: [Bun.file("ca1.pem"), Bun.file("ca2.pem")], }, }); - unix?: string
If set, the HTTP server listens on a unix socket instead of a port. (Cannot be used with hostname+port)