grpc/grpc
摘要
gRPC 是一个现代、开源、高性能的远程过程调用(RPC)框架,它使客户端和服务器应用程序能够透明地进行通信。
查看缓存全文
缓存时间: 2026/07/10 12:09
grpc/grpc 源代码:https://github.com/grpc/grpc
gRPC – 一个 RPC 库和框架
gRPC 是一个现代的、开源的、高性能远程过程调用(RPC)框架,可在任何环境下运行。gRPC 实现了客户端和服务器应用程序之间的透明通信,并简化了连接系统的构建。
主页:grpc.io
邮件列表:[email protected]
加入聊天室:https://gitter.im/grpc/grpc(https://gitter.im/grpc/grpc?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
开始使用 gRPC
为了最大化易用性,gRPC 支持用户所选语言的标准依赖添加方式(如果存在的话)。在大多数语言中,gRPC 运行时以软件包形式提供,可通过用户语言的包管理器获取。
关于如何在项目中使用的语言特定 gRPC 运行时的说明,请参考以下文档:
- C++:按照
src/cpp目录下的说明操作 - C#/.NET (https://github.com/grpc/grpc-dotnet):NuGet 包
Grpc.Net.Client、Grpc.AspNetCore.Server - Dart (https://github.com/grpc/grpc-dart):pub 包
grpc - Go (https://github.com/grpc/grpc-go):
go get google.golang.org/grpc - Java (https://github.com/grpc/grpc-java):使用 Maven Central Repository 中的 JAR
- Kotlin (https://github.com/grpc/grpc-kotlin):使用 Maven Central Repository 中的 JAR
- Node (https://github.com/grpc/grpc-node):
npm install @grpc/grpc-js - Objective-C:将
gRPC-ProtoRPC依赖添加到 podspec - PHP:
pecl install grpc - Python:
pip install grpcio - Ruby:
gem install grpc - WebJS (https://github.com/grpc/grpc-web):按照 grpc-web 的说明操作
每种语言的快速入门指南和教程可在 grpc.io 网站 (https://grpc.io/docs/) 的文档部分找到。代码示例在 examples 目录中。
gRPC master 分支 HEAD 的预编译前沿版本构建包每天会被上传到 packages.grpc.io (https://packages.grpc.io)。
开始开发 gRPC
欢迎贡献!请阅读 如何贡献,它将指导您完成整个工作流程:如何构建源代码、如何运行测试以及如何向 gRPC 代码库贡献更改。
有关详细的 C++ 构建说明,请参阅 从源代码构建。
“如何贡献”文档还包含有关贡献过程如何运作的信息以及创建贡献的最佳实践建议。
故障排除
有时事情会出错。如果您在使用 gRPC 时遇到问题,请查看 故障排除指南。
性能
有关 master 分支每日构建的性能数据,请参阅性能仪表板 (https://grafana-dot-grpc-testing.appspot.com/)。
概念
参见 gRPC 概念。
关于此仓库
此仓库包含在共享的 C++ 核心库 src/core 之上实现的多种语言的 gRPC 库的源代码。不同语言的库可能处于不同的开发阶段。我们欢迎对所有这些库做出贡献:
| 语言 | 源代码 |
|---|---|
| 共享 C++ [核心库] | src/core |
| C++ | src/cpp |
| Ruby | src/ruby |
| Python | src/python |
| PHP | src/php |
| C#(基于核心库) | src/csharp |
| Objective-C | src/objective-c |
| 语言 | 源代码仓库 |
|---|---|
| Java | grpc-java (https://github.com/grpc/grpc-java) |
| Kotlin | grpc-kotlin (https://github.com/grpc/grpc-kotlin) |
| Go | grpc-go (https://github.com/grpc/grpc-go) |
| NodeJS | grpc-node (https://github.com/grpc/grpc-node) |
| WebJS | grpc-web (https://github.com/grpc/grpc-web) |
| Dart | grpc-dart (https://github.com/grpc/grpc-dart) |
| .NET(纯 C# 实现) | grpc-dotnet (https://github.com/grpc/grpc-dotnet) |
| Swift | grpc-swift (https://github.com/grpc/grpc-swift) |
相似文章
@freeCodeCamp:现代分布式系统需要服务之间快速、可靠的通信方式。在这本手册中,@devseyi 解释了如…
一本全面的手册,讲解 RPC、Protocol Buffers 和 gRPC,用于构建现代分布式系统,并包含使用 Dart 和 Flutter 的动手实践。
grnlght
grnlght 是一个客户交付系统,旨在简化并推动工作进展。
RPCForge
RPCForge 是一款主打用户所有权和控制的多链以太坊 RPC 解决方案产品发布。
使用 Gradio 后端构建任意自定义前端
Hugging Face 推出 `gradio.Server`,一款全新工具,让开发者能够将 Gradio 的后端基础设施(队列、托管)与使用 React、Svelte 或纯 HTML/CSS/JS 构建的自定义前端结合使用。
@msimoni: 关于gRPC截止时间:如果客户端说“我愿意等待100毫秒”,但请求在网络传输上花费了50毫秒……
一条推文提出了关于gRPC截止时间传播的问题:如果客户端指定了100毫秒的截止时间,但网络延迟消耗了50毫秒,那么服务器是否仍然拥有完整的100毫秒?