The Go language implementation of gRPC. HTTP/2 based RPC
Go Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github Create ISSUE_TEMPLATE May 31, 2017
Documentation Revert stickiness (#2175) Jun 26, 2018
balancer update proto generated code (#2254) Aug 2, 2018
benchmark go generate: update proto files (#2236) Jul 25, 2018
channelz remove 1.6 support for channelz (#2242) Jul 26, 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 go generate: update proto files (#2236) Jul 25, 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 health: update pb.go and add watch method (#2263) Aug 15, 2018
internal channelz: use atomic instead of mutex (#2218) Aug 6, 2018
interop interop: implement special_status_message interop test (#2241) Jul 30, 2018
keepalive autofix license notice Jun 8, 2017
metadata Fix "deprecated" function godoc comments to match standard formatting ( May 2, 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: document that SetDefaultScheme should be called at init time ( Jul 16, 2018
stats internal: Update proto generated code (#2133) Jun 9, 2018
status Revert "internal: remove transportMonitor, replace with callbacks" (#… Aug 1, 2018
stress go generate: update proto files (#2236) Jul 25, 2018
tap Update ServerInHandle comments (#1437) Aug 14, 2017
test internal: remove TestingUseHandlerImpl (#2253) Aug 3, 2018
testdata Add testdata package and unify testdata to only one dir (#1297) Jul 25, 2017
.travis.yml remove 1.6 support for channelz (#2242) Jul 26, 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 testing: run test in simulated appengine environment (#2145) Jun 21, 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 Mark old balancer and naming APIs as deprecated (#1951) Apr 5, 2018
balancer_conn_wrappers.go Fix typos (#1994) Apr 16, 2018
balancer_switching_test.go internal: move leakcheck to internal/ (#2129) Jun 7, 2018
balancer_test.go internal: move leakcheck to internal/ (#2129) Jun 7, 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 channelz: unexport unnecessary API on grpc entities (#2257) Aug 6, 2018
clientconn_test.go ClientConn: add Target() returning target string (#2233) Jul 23, 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 client: define dialOptions as interfaces instead of functions (#2230) Jul 20, 2018
doc.go Fix missing and wrong license (#1422) Aug 4, 2017
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: run test in simulated appengine environment (#2145) Jun 21, 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 Add dial option to set balancer (#1697) Dec 18, 2017
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 resolver_conn_wrapper.go: fix minor typo (#2135) Jun 8, 2018
resolver_conn_wrapper_test.go go vet: fix composite literal uses unkeyed fields (#2005) Apr 20, 2018
rpc_util.go channelz: use atomic instead of mutex (#2218) Aug 6, 2018
rpc_util_test.go transport: eliminate StreamError; use status errors instead (#2239) Jul 26, 2018
server.go channelz: unexport unnecessary API on grpc entities (#2257) Aug 6, 2018
server_test.go transport: move to internal to make room for new, public transport API ( Jul 11, 2018
service_config.go client: Implement gRFC A6: configurable client-side retry support (#2111 Jun 27, 2018
service_config_test.go Change parseTimeout to not handle non-second durations (#1706) Dec 5, 2017
stream.go internal/transport: remove some unused fields from structs (#2213) Jul 13, 2018
trace.go Truncate payload trace string, and turn trace off by default (#1509) Sep 8, 2017
version.go Change version to 1.15.0-dev (#2247) Jul 31, 2018
vet.sh transport: move to internal to make room for new, public transport API ( Jul 11, 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