Skip to content

A Connect RPC adapter for Cloudflare Workers

Notifications You must be signed in to change notification settings

depot/connectrpc-workers

Repository files navigation

@depot/connectrpc-workers

CI npm Powered by TypeScript

A Connect RPC adapter for Cloudflare Workers.

Installation

You can install the module with your favorite package manager:

pnpm add @depot/connectrpc-workers

This package depends on the peer dependencies @connectrpc/connect and @cloudflare/workers-types.

Usage

You can construct a function to register handlers for your Connect services, then construct a Cloudflare Workers fetch event handler from those routes:

import type {ConnectRouter} from '@connectrpc/connect'
import {connectWorkersAdapter} from '@depot/connectrpc-workers'

function routes(router: ConnectRouter) {
  // implement rpc Say(SayRequest) returns (SayResponse)
  router.rpc(ElizaService, ElizaService.methods.say, async (req) => ({
    sentence: `you said: ${req.sentence}`,
  }))
}

const handler = connectWorkersAdapter({routes})

export default {
  fetch(request, env, context) {
    return handler(request, env, context)
  },
} satisfies ExportedHandler

License

MIT License, see LICENSE.