You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Connect is a family of libraries for building type-safe APIs with different languages and platforms.
@connectrpc/connect brings them to TypeScript,
the web browser, and to Node.js.
And with the magic of code generation, this schema produces servers and clients:
constanswer=awaiteliza.say({sentence: "I feel happy."});console.log(answer);// {sentence: 'When you feel happy, what do you do?'}
Unlike REST, the Remote Procedure Call are type-safe, but they are regular HTTP
under the hood. You can see all requests in the network inspector, and you
can curl them if you want:
Connect implements RPC three protocols: The widely available gRPC and
gRPC-web protocols, and Connect's own protocol,
optimized for the web. This gives you unparalleled interoperability across many
platforms and languages, with type-safety end-to-end.
React, Svelte, Vue, Next.js and Angular are supported (see examples),
and we have an expansion pack for TanStack Query.
We support all modern web browsers that implement the widely available
fetch API
and the Encoding API.
Get started on Node.js
Follow our 10 minute tutorial
to spin up a service in Node.js, and call it from the web, and from a gRPC client
in your terminal.
You can serve your Connect RPCs with vanilla Node.js, or use our server plugins
for Fastify, Next.js, and Express. We support Node.js v18.14.1 and later with
the builtin http and http2 modules.
Migrating from version 1
If you are migrating from v1 to v2, check out our migration guide;
Other platforms
Would you like to use Connect on other platforms like Bun, Deno, Vercel’s Edge Runtime,
or Cloudflare Workers? We’d love to learn about your use cases and what you’d like to do
with Connect. You can reach us either through the Buf Slack
or by filing a GitHub issue and we’d
be more than happy to chat!
This project is stable and follows semantic versioning, which means any breaking changes will result in a major version increase.
Our goal is to not make breaking changes unless absolutely necessary.