The Go language implementation of gRPC. HTTP/2 based RPC
Go to file
Anthony Romano 087f3d6e02 transport: implement GoString on Stream (#1167)
So context.String() won't  race when printing %#v.

It is not thread-safe to call context.String() on any context with a
stream value since valueCtx will use %#v to access all of the Stream
fields without holding a lock. Instead, print the Stream's pointer and
method for its GoString.
2017-04-07 11:16:52 -07:00
Documentation Update gomock-example.md 2016-12-15 14:19:28 -08:00
benchmark get more metrics from go benchmark servers (#913) 2017-04-03 15:53:03 -07:00
codes Run stringer on codes.Code 2015-03-24 10:15:18 -07:00
credentials add document to ClientHandshake about returning temporary error (#1125) 2017-03-28 11:12:50 -07:00
examples lint update and test fix 2017-03-08 11:35:54 -08:00
grpclb populate initReq target name and fix IP []byte type in grpclb (#1145) 2017-03-28 12:10:54 -07:00
grpclog Use InfoDepth/FatalDepth in glogger.go 2016-11-29 12:51:42 -08:00
health pb.go file update 2016-10-28 12:37:56 -07:00
internal Remove test-only methods from grpc package. 2016-02-25 13:30:19 -08:00
interop Merge pull request #1022 from ncteisen/http_interop 2017-02-10 15:46:57 -08:00
keepalive Implementation for server enforcement of keepalive policy. (#1147) 2017-03-31 11:37:51 -07:00
metadata fix issue #1056 and #1050 2017-02-13 17:37:53 -08:00
naming Fix some small comments 2016-05-26 15:11:33 -07:00
peer test peer addr 2016-01-06 19:04:19 -08:00
reflection fix FileContainingExtension in server reflection 2017-02-09 21:12:29 -05:00
stats Add status package for reporting gRPC status and errors (#1156) 2017-04-05 10:35:40 -07:00
status Change status package to deal with concrete types instead of interfaces (#1171) 2017-04-06 11:41:07 -07:00
stress Wait until all rpcs are done instead of a hard stop. 2016-12-28 11:59:08 -08:00
tap Support transport tap 2016-11-03 14:21:24 -07:00
test Add status package for reporting gRPC status and errors (#1156) 2017-04-05 10:35:40 -07:00
testdata Updating the test SSL certs. 2015-11-11 14:50:21 -08:00
transport transport: implement GoString on Stream (#1167) 2017-04-07 11:16:52 -07:00
.travis.yml remove support for go1.5 (#1132) 2017-03-23 20:52:49 -07:00
CONTRIBUTING.md Add instructions to CONTRIBUTING.md 2016-03-24 13:55:06 -07:00
LICENSE grpc-go initial commit 2015-02-05 17:14:05 -08:00
Makefile Add comment for proto in Makefile 2016-06-09 14:40:28 -07:00
PATENTS Fix remaining instances of gRPC spelling. 2016-06-02 18:00:07 -07:00
README.md remove support for go1.5 (#1132) 2017-03-23 20:52:49 -07:00
backoff.go Removed the unused named return parameter of `BackoffConfig`'s `backoff` method. 2016-10-11 03:42:29 +09:00
backoff_test.go Revert "added two new testcases for backoff.go" 2016-08-09 14:17:02 -07:00
balancer.go grpclb: Support DropRequest 2016-10-18 18:08:32 -07:00
balancer_test.go Add TestOneConnectionRemoval 2016-08-16 15:48:05 -07:00
call.go Change status package to deal with concrete types instead of interfaces (#1171) 2017-04-06 11:41:07 -07:00
call_test.go Change status package to deal with concrete types instead of interfaces (#1171) 2017-04-06 11:41:07 -07:00
clientconn.go :authority should include port number (#1123) 2017-03-28 11:09:23 -07:00
clientconn_test.go :authority should include port number (#1123) 2017-03-28 11:09:23 -07:00
codegen.sh FIX: use /usr/bin/env bash in shebang 2016-12-17 20:45:30 +01:00
coverage.sh FIX: use /usr/bin/env bash in shebang 2016-12-17 20:45:30 +01:00
doc.go fix the grpc website url 2016-02-19 11:56:12 -08:00
interceptor.go Fix typo in interceptor.go (#1172) 2017-04-06 13:50:23 -07:00
rpc_util.go Change status package to deal with concrete types instead of interfaces (#1171) 2017-04-06 11:41:07 -07:00
rpc_util_test.go Change status package to deal with concrete types instead of interfaces (#1171) 2017-04-06 11:41:07 -07:00
server.go Change status package to deal with concrete types instead of interfaces (#1171) 2017-04-06 11:41:07 -07:00
server_test.go relax the checking on error string 2017-03-02 15:21:41 -08:00
stream.go Change status package to deal with concrete types instead of interfaces (#1171) 2017-04-06 11:41:07 -07:00
trace.go Fix golint errors 2016-06-01 16:40:26 -07:00

README.md

#gRPC-Go

Build Status GoDoc

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 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 google.golang.org/grpc

Prerequisites

This requires Go 1.6 or later.

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.

Status

GA

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