service-bindings Service Bindings
Worker-to-Worker RPC, zero overhead — source on GitHub 𝕏 Share
src/backend.ts
import { WorkerEntrypoint } from 'cloudflare:workers'
export default class Backend extends WorkerEntrypoint {
add(a: number, b: number): number {
return a + b
}
greet(name: string): string {
return `Hello, ${name}!`
}
}
src/gateway.ts
import { Hono } from 'hono'
const app = new Hono<{ Bindings: Env }>()
app.get('/add/:a/:b', async (c) => {
const result = await c.env.BACKEND.add(Number(c.req.param('a')), Number(c.req.param('b')))
return c.json({ result })
})
app.get('/greet/:name', async (c) => {
return c.text(await c.env.BACKEND.greet(c.req.param('name')))
})
export default app
Try it — requests go to a Dynamic Worker running this code. State is isolated per browser session and expires after a while.![response]()
response will appear here