https://github.com/depot/connectrpc-workers
A Connect RPC adapter for Cloudflare Workers
https://github.com/depot/connectrpc-workers
cloudflare cloudflare-workers connectrpc
Last synced: 10 months ago
JSON representation
A Connect RPC adapter for Cloudflare Workers
- Host: GitHub
- URL: https://github.com/depot/connectrpc-workers
- Owner: depot
- Created: 2024-04-13T08:52:11.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-22T11:05:13.000Z (over 1 year ago)
- Last Synced: 2025-04-11T21:56:08.207Z (10 months ago)
- Topics: cloudflare, cloudflare-workers, connectrpc
- Language: TypeScript
- Homepage:
- Size: 99.6 KB
- Stars: 7
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# `@depot/connectrpc-workers`
[](https://github.com/depot/connectrpc-workers/actions/workflows/ci.yml)
[](https://www.npmjs.com/package/@depot/connectrpc-workers)

A [Connect RPC](https://connectrpc.com/) adapter for [Cloudflare Workers](https://workers.cloudflare.com/).
## Installation
You can install the module with your favorite package manager:
```bash
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:
```typescript
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`.