@playfast/reform-remote-bun
v1.0.1
Published
Bun WebSocket server adapter for reform-remote — serves a reform scene's UI over native Bun.serve, one isolated runtime per connection.
Maintainers
Readme
@playfast/reform-remote-bun
Serve a reform scene's UI over WebSocket from Bun, using native Bun.serve.
A concrete WebSocket server adapter for
@playfast/reform-remote, built on
Bun.serve. The scene runs ONCE as a single shared runtime (serveShared); every connection
attaches to it via addClient, so all clients see and drive the same state. Each socket's
per-connection state (its client handle and message handlers) rides on ws.data, JSON-framed.
The wire messages are already _tag-discriminated and serializable, so there is no envelope to
write.
import { serveBunWebSocket } from '@playfast/reform-remote-bun'
import { myScene } from './scene'
const host = serveBunWebSocket({ scene: myScene, port: 8080 })
// host.server.port — the bound port (handy with port: 0)
// …later
await host.stop()Pass path to restrict upgrades and hostname to bind a specific interface. For per-connection
auth, pass authenticate(request) (run at the WS upgrade; returns Allow/Deny) and the optional
post-auth admit(identity, request) (Admit/Reject); omit both for the trusted-loopback default.
Connect from the browser (or Node/Bun) with
@playfast/reform-remote-web; the
Node (ws) server equivalent is
@playfast/reform-remote-node.
License
MIT
