Websocket Support
We have adapters for Bun, Node, Deno, Crossws, ... docs here
import { experimental_RPCHandler as RPCHandler } from '@orpc/server/bun-ws'
const handler = new RPCHandler(router)
Bun.serve({
fetch(req, server) {
if (server.upgrade(req)) {
return
}
return new Response('Upgrade failed', { status: 500 })
},
websocket: {
message(ws, message) {
handler.message(ws, message, {
context: {}, // Provide initial context if needed
})
},
close(ws) {
handler.close(ws)
},
},
})
Zod 4 support
import {
experimental_ZodSmartCoercionPlugin as ZodSmartCoercionPlugin
} from '@orpc/zod/zod4' // <-- zod v4
import {
experimental_ZodToJsonSchemaConverter as ZodToJsonSchemaConverter
} from '@orpc/zod/zod4' // <-- zod v4
🚀 Features
- Support
HEAD
method - by @unnoq in #468 (075ee) - openapi: CreateJsonifiedRouterClient - by @unnoq in #449 (a2fc0)
- react: Use useTransition within useServerAction - by @unnoq in #459 (95b67)
- standard-server: Server adapter for connected peers - by @unnoq in #456 (98784)
- zod: Experimental support zod v4 - by @unnoq in #462 (d5f6b)
🐞 Bug Fixes
- openapi: Inline spec into scalar html (OpenAPI Reference Plugin) - by @unnoq in #469 (77566)
- server: SSE with keepalive crashes server on client disconnect - by @unnoq in #464 (13307)
- standard-server: Improve event-iterator cleanup - by @unnoq in #466 (24429)