

Connect是一个用于建造具有不同语言和平台的类型安全API的库系列。 @connectrpc/connect将它们带到打字稿,Web浏览器和Node.js。
使用Connect,您首先定义模式:
service ElizaService {
rpc Say(SayRequest) returns (SayResponse) {}
}
凭借代码生成的魔力,该模式生产服务器和客户端:
const answer = await eliza . say ( { sentence : "I feel happy." } ) ;
console . log ( answer ) ;
// {sentence: 'When you feel happy, what do you do?'}与REST不同,远程过程调用是类型安全的,但它们是引擎盖下的常规HTTP。您可以在网络检查员中查看所有请求,并且可以根据需要curl :
curl
--header ' Content-Type: application/json '
--data ' {"sentence": "I feel happy."} '
https://demo.connectrpc.com/connectrpc.eliza.v1.ElizaService/SayConnect使用Protobuf-es,这是唯一完全符合的Protobuf JavaScript库。
连接实现RPC三个协议:可广泛可用的GRPC和GRPC-WEB协议,以及针对Web优化的连接协议。这为您提供了许多平台和语言的无与伦比的互操作性,并具有端到端的类型安全性。
请按照我们使用Vite的10分钟教程,并进行反应为Eliza创建Web界面。
支持, Svelte , Vue , Next.js和Angular (请参见示例),并且我们有一个用于Tanstack查询的扩展包。我们支持实现广泛可用的Fetch API和编码API的所有现代Web浏览器。
请按照我们的10分钟教程在Node.js中旋转服务,并从网络和终端中的GRPC客户端调用它。
您可以将Connect RPC与Vanilla node.js一起使用,也可以使用我们的服务器插件进行Fastify , Next.js和Express 。我们支持Node.js v18.14.1及以后使用内置的http和http2模块。
如果您要从V1迁移到V2,请查看我们的迁移指南;
您是否想在BUN,DENO,VERCEL的Edge Runtime或Cloudflare工人等其他平台上使用Connect?我们很想了解您的用例以及您想与Connect一起做什么。您可以通过BUF Slack或提交GitHub问题与我们联系,我们很乐意聊天!
库和生成的代码与ES2017和Typescript 4.9.5兼容。
根据Apache 2许可提供。