Skip to main content
Account

Connect RPC

Connect RPC is a Protobuf RPC framework that works over HTTP/1.1, HTTP/2 and HTTP/3. Learn how one handler serves Connect, gRPC and gRPC-Web clients.

Status
Stable
Category
Orchestration & Management
Subcategory
Remote Procedure Call
License
Apache-2.0
Technology matrix Skip Just not for me See the matrix

Connect is an RPC framework from Buf that uses Protobuf schemas but runs over plain HTTP/1.1, HTTP/2, and HTTP/3 — without the gRPC wire protocol’s hard dependency on HTTP/2 trailers. A Connect server speaks three protocols simultaneously on the same endpoint: Connect’s own protocol (which works through any HTTP proxy, browser fetch, and curl), gRPC, and gRPC-Web. Clients can pick whichever they need.

The practical win is that you get one .proto file, one generated service interface, and a single handler that any client can call: a Go backend, a TypeScript web app using @connectrpc/connect-web, a Swift iOS app, or a regular gRPC client. Unary calls look like JSON or Protobuf POSTs with predictable status codes, so they’re debuggable with curl and cacheable by CDNs. Streaming uses enveloped messages over a single HTTP body. There are official implementations for Go (connect-go), TypeScript/JavaScript (connect-es), Swift, Kotlin, and Python.

Connect exists because gRPC-Web required a translating proxy (Envoy) in front of gRPC services to be callable from browsers, and because the gRPC protocol itself is awkward to debug. It’s a pragmatic alternative to gRPC for teams that are all-in on Protobuf but want browser reachability and simpler ops.

Remote Procedure Call

Email signup loads here. You can also manage email preferences in account settings.

Build Connect RPC? I'll show you where engineers get stuck with it → Back free content for the community →