.listen() defaults to Bun. When you need Node specifically, use @redopjs/redop/node.
Quick start
Other Node shapes
nodeListener(app)/toNodeHandler(app)— attach to an existingnode:httpservernodeFetch(app)— portable(Request) => Responsefor undici-style hosts
Notes
- Node is a long-lived runtime, so
afterResponseuses microtasks (same model as Bun). - Sessioned MCP and SSE work the same as the Bun HTTP transport on a single process.
- For Cloudflare or Vercel, use
cloudflare(app)orvercel(app)instead of the Node listener.