About this project

gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. It enables client and server applications to communicate transparently and aims to simplify building connected systems. This repository contains the source code for gRPC libraries implemented in multiple languages on top of a shared C++ core library (src/core). The README lists the following in-repo implementations: shared C++ core library, C++, Ruby, Python, PHP, C# (core-library based), and Objective-C. Other language implementations live in separate repositories: Java (grpc-java), Kotlin (grpc-kotlin), Go (grpc-go), NodeJS (grpc-node), WebJS (grpc-web), Dart (grpc-dart), .NET pure C# implementation (grpc-dotnet), and Swift (grpc-swift). Getting started: gRPC supports the standard dependency mechanism of each language, and in most languages the runtime is available through the language's package manager. The README points to per-language installation paths, including C++ (instructions under src/cpp), C#/.NET NuGet packages Grpc.Net.Client and Grpc.AspNetCore.Server, Dart pub package grpc, Go module google.golang.org/grpc, Java and Kotlin JARs from Maven Central, Node npm package @grpc/grpc-js, Objective-C via the gRPC-ProtoRPC podspec dependency, PHP via pecl install grpc, Python via pip install grpcio, Ruby via gem install grpc, and WebJS via the grpc-web instructions. Per-language quickstart guides and tutorials are available in the documentation section of the grpc.io website, and code examples are in the examples directory. Precompiled bleeding-edge package builds of the master branch HEAD are uploaded daily to packages.grpc.io. Development and support: contributions are welcome, and the CONTRIBUTING.md document describes the workflow for building the source, running tests, and submitting changes, with detailed C++ build instructions in BUILDING.md. A TROUBLESHOOTING.md guide is provided for issues. A performance dashboard reports numbers for master branch daily builds. Conceptual background is documented in CONCEPTS.md. The project homepage is grpc.io and the mailing list is grpc-io@googlegroups.com.