gRPC

基于 C 的 gRPC(C++, Python, Ruby, Objective-C, PHP, C#)。「The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)」

Github星跟蹤圖

gRPC -- 一个 RPC 库和框架

gRPC 是一个现代的、开源的、高性能的远程过程调用(RPC)框架,可以在任何地方运行。gRPC 使客户端和服务器应用程序透明地通信,并简化了连接系统的构建。

主页: grpc.io
邮件列表: grpc-io@googlegroups.com

gRPC 是一种可以在任何环境中运行的现代开源高性能RPC框架。 它可以有效地连接数据中心内部的数据中心和可扩展支持的负载平衡,跟踪,健康检查和身份验证。 它也适用于最后一英里的分布式计算,将设备,移动应用程序和浏览器连接到后端服务。

主要使用场景:

  • 在微服务风格的架构中有效地连接多业务服务
  • 将移动设备,浏览器客户端连接到后端服务
  • 生成高效的客户端库

核心功能让它棒极了:

  • 12 种语言的惯用客户端库。包括 C++, Java, Objective-C, Python, Ruby, Go, C#, Node.js, C, PHP, Dart, Kotlin, WebJS。
  • 高效的线上和简单的服务定义框架
  • 基于 HTTP/2 的双向流传输
  • 可插拔的验证,跟踪,负载平衡和健康检查

开始使用 gRPC

为了最大限度地提高可用性,gRPC 支持在用户选择的语言(如果有的话)中添加依赖关系的标准方法。在大多数语言中,gRPC 运行时作为一个包出现在用户的语言包管理器中。

关于如何在项目中使用特定语言的 gRPC 运行时的说明,请参考这些文档:

  • C++:按照 src/cpp 目录下的说明进行操作。
  • C#:NuGet package Grpc
  • Dart:pub package grpc
  • Gogo get google.golang.org/grpc
  • Java:使用 Maven Central Repository 的 JARs
  • Kotlin:使用 Maven Central Repository 的 JARs
  • Nodenpm install grpc
  • Objective-C:在 podspec 中添加 gRPC-ProtoRPC 依赖关系。
  • PHPpecl install grpc
  • Pythonpip install grpcio
  • Rubygem install grpc
  • WebJS:follow the grpc-web instructions

每种语言的快速入门指南和教程可以在 grpc.io 网站的文档部分找到。代码示例可以在 examples 目录中找到。

gRPC主分支的HEAD的预编译出血性包构建每天都会上传到 packages.grpc.io

开始开发 gRPC

欢迎大家的贡献

请阅读 "如何贡献",它将指导你完成整个工作流程,包括如何构建源代码,如何运行测试,以及如何对gRPC代码库进行修改。"如何贡献" 文档中还包含了关于贡献过程如何工作的信息,以及创建贡献的最佳实践。

疑难解答

有时会出现问题。如果您在使用 gRPC 时遇到问题,请查看 故障排除指南

性能问题

查看 性能仪表板,了解主分支每日构建的性能数据。

概念

参见 gRPC 概念

关于本存储库

这个资源库包含了在共享的 C 核心库 src/core 上用多种语言实现的 gRPC 库的源代码。

不同语言的库可能处于不同的开发状态。我们正在为所有这些库寻求贡献。

语言 源代码
Shared C [core library] src/core
C++ src/cpp
Ruby src/ruby
Python src/python
PHP src/php
C# (core library based) src/csharp
Objective-C src/objective-c
语言 源代码 repo
Java grpc-java
Kotlin grpc-kotlin
Go grpc-go
NodeJS grpc-node
WebJS grpc-web
Dart grpc-dart
.NET (pure C# impl.) grpc-dotnet

(The second edition revised by vz on 2020.12.26)

概覽

名稱與所有者grpc/grpc
主編程語言C++
編程語言C++ (語言數: 23)
平台
許可證Apache License 2.0
發布數345
最新版本名稱v1.64.0-pre2 (發布於 )
第一版名稱release_test (發布於 )
創建於2014-12-08 18:58:53
推送於2024-05-12 17:58:46
最后一次提交2024-05-12 10:54:15
星數40.8k
關注者數1.4k
派生數10.4k
提交數54.9k
已啟用問題?
問題數11241
打開的問題數581
拉請求數19248
打開的拉請求數287
關閉的拉請求數5532
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

gRPC - An RPC library and framework

gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC enables client and server applications to communicate transparently, and simplifies the building of connected systems.

Join the chat at https://gitter.im/grpc/grpc

To start using gRPC

To maximize usability, gRPC supports the standard method for adding dependencies to a user's chosen language (if there is one).
In most languages, the gRPC runtime comes as a package available in a user's language package manager.

For instructions on how to use the language-specific gRPC runtime for a project, please refer to these documents

  • C++: follow the instructions under the src/cpp directory
  • C#: NuGet package Grpc
  • Dart: pub package grpc
  • Go: go get google.golang.org/grpc
  • Java: Use JARs from Maven Central Repository
  • Node: npm install grpc
  • Objective-C: Add gRPC-ProtoRPC dependency to podspec
  • PHP: pecl install grpc
  • Python: pip install grpcio
  • Ruby: gem install grpc
  • WebJS: follow the grpc-web instructions

Per-language quickstart guides and tutorials can be found in the documentation section on the grpc.io website. Code examples are available in the examples directory.

Precompiled bleeding-edge package builds of gRPC master branch's HEAD are uploaded daily to packages.grpc.io.

To start developing gRPC

Contributions are welcome!

Please read How to contribute which will guide you through the entire workflow of how to build the source code, how to run the tests, and how to contribute changes to
the gRPC codebase.
The "How to contribute" document also contains info on how the contribution process works and contains best practices for creating contributions.

Troubleshooting

Sometimes things go wrong. Please check out the Troubleshooting guide if you are experiencing issues with gRPC.

Performance

See the Performance dashboard for performance numbers of the latest released version.

Concepts

See gRPC Concepts

About This Repository

This repository contains source code for gRPC libraries implemented in multiple languages written on top of a shared C core library src/core.

Libraries in different languages may be in various states of development. We are seeking contributions for all of these libraries:

去到頂部