@bufbuild/connect
Connect is a family of libraries for building type-safe APIs with different languages and platforms.
@bufbuild/connect brings them to TypeScript,
the web browser, and to Node.js.
With Connect, you define your schema first:
service ElizaService {
rpc Say(SayRequest) returns (SayResponse) {}
}
And with the magic of code generation, this schema produces servers and clients:
const answer = await eliza.say({sentence: "I feel happy."});
console.log(answer);
Unlike REST, the RPCs you use with Connect are typesafe end to end, 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:
curl \
--header 'Content-Type: application/json' \
--data '{"sentence": "I feel happy."}' \
https://demo.connect.build/buf.connect.demo.eliza.v1.ElizaService/Say
With Connect for ECMAScript, you can spin up a service in Node.js and call it
from the web, the terminal, or native mobile clients. Under the hood, it uses
Protocol Buffers for the schema, and
implements RPC (remote procedure calls) with three protocols: The widely available
gRPC and gRPC-web, and Connect's own protocol,
optimized for the web. This gives you unparalleled interoperability with
full-stack type-safety.
Getting started
To get started with Connect, head over to the docs
for a tutorial, or take a look at our example.
Connect plays nice with Vue, Svelte, Remix, Next.js, Angular and many others. Take a look at
our examples for various frameworks.