

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許可提供。