Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

connectrpc/connect-es

说明与用途

**项目简介**
connectrpc/connect-es 是 Connect(基于 Protobuf 的 RPC 框架)的 TypeScript 实现,提供跨语言、跨平台的高性能 RPC 调用能力。它遵循 Connect 规范,兼容 gRPC‑Web、gRPC‑Node 与 HTTP/1.1,适合在前端、Node.js 以及 Edge 环境中使用。

**价值点**

  • **统一协议**:一次定义的 .proto 文件即可在前端(浏览器/React Native)和后端(Node、Go、Java 等)之间共享,同步生成的 TypeScript 类型保证编译时安全。
  • **轻量且高效**:基于 fetch/AbortController 实现,无需额外的二进制依赖,天然支持浏览器缓存、流式响应和自动重试。
  • **生态兼容**:兼容现有的 Connect、gRPC‑Web、grpc-node 客户端,迁移成本低,且可以直接在 Vite、Webpack、Next.js 等现代前端构建工具中使用。

**典型接入方式**

| 场景 | 步骤 | 关键代码 |
|------|------|----------|
| **前端(React/Vite)** | 1. 安装 @connectrpc/connect-es <br>2. 使用 createPromiseClient 生成客户端 <br>3. 在业务代码中直接调用 RPC 方法 | ``bash\nnpm i @connectrpc/connect-es\n`\n`ts\nimport { createPromiseClient, createConnectTransport } from '@connectrpc/connect-es';\nimport { GreeterService } from './gen/connectrpc/example/greeter_connect';\n\nconst transport = createConnectTransport({ baseUrl: '/api' });\nconst greeter = createPromiseClient(GreeterService, transport);\n\nasync function sayHello(name: string) {\n const resp = await greeter.sayHello({ name });\n console.log(resp.message);\n}\n`` |
| **Node.js(后端或 CLI)** | 1. 同样安装库 <br>2. 使用 createGrpcTransport(或 createConnectTransport) <br>3. 与其它语言的 Connect 服务互通 | ``ts\nimport { createGrpcTransport, createPromiseClient } from '@connectrpc/connect-es';\nimport { GreeterService } from './gen/connectrpc/example/greeter_connect';\n\nconst transport = createGrpcTransport({ httpVersion: '2', baseUrl: 'https://api.example.com' });\nconst client = createPromiseClient(GreeterService, transport);\n`` |
| **Edge/Workers(Cloudflare、Vercel)** | 直接使用 fetch‑based transport,无需 Node‑specific polyfills | 同前端示例,只需把 baseUrl 指向 Edge 入口即可。 |

**生产可用性**

  • **活跃度**:截至 2026‑05‑11,项目仍在持续更新,最近一次提交仅几天前;GitHub ★1738、Fork 116,说明社区关注度高。
  • **成熟度**:已在多个公开项目中作为核心 RPC 层使用,具备完整的 TypeScript 类型、自动生成的 SDK 与 CLI,符合企业级可维护性要求。
  • **安全与合规**:采用 MIT 许可证,代码审计记录良好;依赖主要是标准库(fetch、AbortController),攻击面相对较小。
  • **部署准备**:支持 HTTP/1.1、HTTP/2、gRPC‑Web,能够在容器、Serverless、K8s、Edge 等多种环境无缝部署。

**结论**
connectrpc/connect-es 具备高生产就绪度,适合作为前后端统一的 RPC 通信层。只需几行代码即可在 TypeScript 项目中接入,且兼容现有的 Connect/gRPC 生态,是进行现代微服务或全栈 TypeScript 开发的可靠选择。

实际用途

connectrpc/connect-es may be useful when its README and activity match a concrete workflow.

限制与审查说明

High for an OSS candidate: recent activity, adoption, and ecosystem signals are strong enough for a serious pilot.

  • 来源: github
  • 语言: TypeScript
  • 记录日期: 2026-09-05T17:30:57.029Z
原始来源