Vercel — AI · · 2 min read

Bun runtime for Vercel Functions now accepts Bun.serve as an entrypoint

Mirrored from Vercel — AI for archival readability. Support the source by reading on the original site.

The Bun runtime for Vercel Functions now supports Bun.serve() as a function entrypoint, including WebSocket handlers. The server you run locally with Bun deploys as-is, without being wrapped in a framework.

Enable the runtime by setting "bunVersion": "1.x" in vercel.json.

Copy link to headingDeploy a routes-based server

Create a server with a routes map in server.ts at the project root.

Bun.serve({
routes: {
"/api/boolean": () => Response.json({ success: true }),
"/api/users/:id": (request) => Response.json({ user: request.params.id }),
"/*": () => new Response("api catch-all"),

A Bun.serve server deployed to Vercel with static, dynamic, and wildcard routes

Copy link to headingAccept WebSocket connections

Add a websocket handler and call server.upgrade(request) in fetch to upgrade matching requests. The rest of the server stays the same.

Bun.serve({
routes: {
"/health": Response.json({ status: "ok" }),
fetch(request, server) {
const { pathname } = new URL(request.url);
if (pathname === "/ws" && server.upgrade(request)) {
return;
return new Response("Not found", { status: 404 });
websocket: {
message(socket, message) {
socket.send(message);

A websocket handler echoes messages back, and fetch upgrades requests to /ws and falls back to a 404

WebSocket connections run on Fluid compute with Active CPU pricing, so you pay only for time spent processing messages, not idle connection time. A connection is pinned to one function instance for its lifetime, and a single instance can handle multiple concurrent connections. Use an external data store to coordinate messages across instances.

Read the documentation to get started.

Contributors

Eric Dodds

Discussion (0)

Sign in to join the discussion. Free account, 30 seconds — email code or GitHub.

Sign in →

No comments yet. Sign in and be the first to say something.

More from Vercel — AI