The Go language implementation of gRPC. HTTP/2 based RPC
Permalink
Failed to load latest commit information.
.github Add lock.yml for locking closed, stale PRs/issues (#2331) Sep 25, 2018
Documentation keepalive: godoc improvement and behavior explanation (#2342) Oct 2, 2018
balancer add header metadata to PickOptions (#2376) Oct 12, 2018
benchmark Remove shadowing of built-ins (#2290) Sep 5, 2018
channelz channelz: channel tracing (#2262) Sep 12, 2018
codes codes: fix: marshal/unmarshal a Code to JSON fails (#2116) Jun 1, 2018
connectivity Add and use connectivity package for states (#1430) Aug 9, 2017
credentials credentials/alts: Minor typo fix (#2344) Oct 2, 2018
encoding Revert "Less mem (#1987)" (#2049) May 3, 2018
examples internal: Update proto generated code (#2133) Jun 9, 2018
grpclog Fix "deprecated" function godoc comments to match standard formatting ( May 2, 2018
health refactor variable name (#2369) Oct 11, 2018
internal channelz: remove init logging (#2373) Oct 12, 2018
interop Provide a fake grpclb balancer server that can be used for testing (#… Oct 3, 2018
keepalive keepalive: godoc improvement and behavior explanation (#2342) Oct 2, 2018
metadata Remove shadowing of built-ins (#2290) Sep 5, 2018
naming Fix typos (#1994) Apr 16, 2018
peer autofix license notice Jun 8, 2017
reflection go generate: update proto files (#2236) Jul 25, 2018
resolver resolver/dns: support custom dns authority (#2265) Sep 25, 2018
stats Remove unused symbols (#2287) Sep 5, 2018
status Transport refactor (#2305) Sep 20, 2018
stress go generate: update proto files (#2236) Jul 25, 2018
tap Update ServerInHandle comments (#1437) Aug 14, 2017
test add header metadata to PickOptions (#2376) Oct 12, 2018
testdata testdata: get test assets related to package root instead of GOPATH (#… Aug 22, 2018
.travis.yml retry go get when it fails (#2345) Oct 11, 2018
AUTHORS add AUTHORS and LICENSE Jun 8, 2017
CONTRIBUTING.md documentation: add instructions for running tests locally (#2006) Apr 20, 2018
LICENSE Make Apache 2.0 LICENSE file a verbatim copy (#1329) Jun 21, 2017
Makefile Transport refactor (#2305) Sep 20, 2018
README.md Correct Go 1.6 support policy (#1934) Mar 21, 2018
backoff.go internal: move backoff to internal (#2141) Jun 13, 2018
balancer.go Remove unused symbols (#2287) Sep 5, 2018
balancer_conn_wrappers.go credentials: support google default creds (#2315) Sep 25, 2018
balancer_switching_test.go internal: move leakcheck to internal/ (#2129) Jun 7, 2018
balancer_test.go Remove unused symbols (#2287) Sep 5, 2018
balancer_v1_wrapper.go Split grpclb out of top level grpc package (#2107) Jun 5, 2018
call.go client: Implement gRFC A6: configurable client-side retry support (#2111 Jun 27, 2018
call_test.go transport: move to internal to make room for new, public transport API ( Jul 11, 2018
clientconn.go add header metadata to PickOptions (#2376) Oct 12, 2018
clientconn_state_transition_test.go internal: clean up and unflake state transitions test (#2366) Oct 12, 2018
clientconn_test.go internal: clean up and unflake state transitions test (#2366) Oct 12, 2018
codec.go encoding: Introduce new method for registering and choosing codecs (#… Jan 23, 2018
codec_test.go encoding: Introduce new method for registering and choosing codecs (#… Jan 23, 2018
codegen.sh FIX: use /usr/bin/env bash in shebang Dec 17, 2016
dialoptions.go credentials: support google default creds (#2315) Sep 25, 2018
doc.go Fix missing and wrong license (#1422) Aug 4, 2017
go.mod Initial go.mod module definition and corresponding Travis/vet.sh chan… Aug 31, 2018
go.sum Initial go.mod module definition and corresponding Travis/vet.sh chan… Aug 31, 2018
go16.go transport: eliminate StreamError; use status errors instead (#2239) Jul 26, 2018
go17.go transport: eliminate StreamError; use status errors instead (#2239) Jul 26, 2018
install_gae.sh testing: upgrade appengine sdk to version 1.9.68 (#2311) Sep 18, 2018
interceptor.go server: Convert all non-status errors to codes.Unknown (#1881) Mar 8, 2018
picker_wrapper.go transport: move to internal to make room for new, public transport API ( Jul 11, 2018
picker_wrapper_test.go transport: move to internal to make room for new, public transport API ( Jul 11, 2018
pickfirst.go channelz: channel tracing (#2262) Sep 12, 2018
pickfirst_test.go internal: move leakcheck to internal/ (#2129) Jun 7, 2018
proxy.go Re-add support for Go1.6 (#1603) Oct 20, 2017
proxy_test.go internal: move leakcheck to internal/ (#2129) Jun 7, 2018
resolver_conn_wrapper.go channelz: channel tracing (#2262) Sep 12, 2018
resolver_conn_wrapper_test.go tests: fix leak in TestDialParseTargetUnknownScheme (#2320) Sep 27, 2018
rpc_util.go server: reuse function recv() in processUnary (#2351) Oct 8, 2018
rpc_util_test.go transport: eliminate StreamError; use status errors instead (#2239) Jul 26, 2018
server.go server: reuse function recv() in processUnary (#2351) Oct 8, 2018
server_test.go transport: move to internal to make room for new, public transport API ( Jul 11, 2018
service_config.go service config: Avoid logging a warning on empty serviceconfig. (#2316) Oct 4, 2018
service_config_test.go Change parseTimeout to not handle non-second durations (#1706) Dec 5, 2017
stream.go balancer: add trailer metadata to DoneInfo (#2359) Oct 10, 2018
trace.go Truncate payload trace string, and turn trace off by default (#1509) Sep 8, 2017
version.go Change version to 1.16.0-dev (#2303) Sep 11, 2018
vet.sh internal: fix various problems in transport_test.go Sep 24, 2018

README.md

gRPC-Go

Build Status GoDoc GoReportCard

The Go implementation of gRPC: A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. For more information see the gRPC Quick Start: Go guide.

Installation

To install this package, you need to install Go and setup your Go workspace on your computer. The simplest way to install the library is to run:

$ go get -u google.golang.org/grpc

Prerequisites

This requires Go 1.6 or later. Go 1.7 will be required soon.

Constraints

The grpc package should only depend on standard Go packages and a small number of exceptions. If your contribution introduces new dependencies which are NOT in the list, you need a discussion with gRPC-Go authors and consultants.

Documentation

See API documentation for package and API descriptions and find examples in the examples directory.

Performance

See the current benchmarks for some of the languages supported in this dashboard.

Status

General Availability Google Cloud Platform Launch Stages.

FAQ

Compiling error, undefined: grpc.SupportPackageIsVersion

Please update proto package, gRPC package and rebuild the proto files:

  • go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
  • go get -u google.golang.org/grpc
  • protoc --go_out=plugins=grpc:. *.proto