Skip to content

Adapters

This documents the old v1 API. See Bun Adapter for the current version.

Zocket’s server is adapter-based.

import { zocket, createBunServer } from "@zocket/core";
const zo = zocket.create({ /* ... */ });
const appRouter = zo.router().outgoing({ /* ... */ }).incoming(() => ({}));
const handlers = createBunServer(appRouter, zo);
Bun.serve({
fetch: handlers.fetch,
websocket: handlers.websocket,
port: 3000,
});

If your runtime provides a WebSocket connection with send, close, and optional pub/sub, you can wire it via createServer:

import { createServer, type ServerAdapter } from "@zocket/core";
const adapter: ServerAdapter = {
start({ port, hostname, onUpgrade, onOpen, onMessage, onClose }) {
return {
port: port ?? 3000,
stop() { /* ... */ },
publish(topic, message) { /* optional */ },
};
},
};
const server = createServer(appRouter, zo, adapter, { port: 3000 });