A high performance, open source, general RPC framework that puts mobile and HTTP/2 first.

Source code on GitHub: grpc, grpc-java, grpc-go.

Powerful IDL

Define your service using Protocol Buffers, a powerful binary serialization toolset and language.

message HelloRequest {
  string greeting = 1;
}

message HelloResponse {
  string reply = 1;
}

service HelloService {
  rpc SayHello(HelloRequest) returns
  (HelloResponse);
}

Libraries in ten languages

Automatically generate idiomatic client and server stubs for your service in a variety of languages.

gRPC has libraries in:
C, C++, Java, Go, Node.js, Python, Ruby, Objective-C, PHP and C#.

Get started

Overview Guide
API Reference Docs

HTTP/2

Building on the HTTP/2 standard brings many capabilities such as bidirectional streaming, flow control, header compression, multiplexing requests over a single TCP connection and more.

These features save battery life and data usage on mobile devices while speeding up services and web applications running in the cloud.

Why gRPC?

Read the Design Motivations & Principles behind gRPC.