The Go language implementation of gRPC. HTTP/2 based RPC
Go to file
Mahak Mukhi 49d2a88c27 Comment formatting 2017-01-06 17:18:22 -08:00
Documentation correct spelling error for the word suffix 2016-10-03 15:20:24 +08:00
benchmark pb.go file update 2016-10-28 12:37:56 -07:00
codes Run stringer on codes.Code 2015-03-24 10:15:18 -07:00
credentials Fix a spelling mistake. 2016-10-31 19:53:00 -07:00
examples Fix broken markdown 2016-11-07 17:35:02 +00:00
grpclb Grpclb: Support server list expiration (#962) 2016-11-16 15:26:18 -08:00
grpclog Comment: explain concurrent access to grpclog.logger 2016-02-01 15:07:17 -05: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 #967 from ncteisen/advanced_go_interop_tests 2016-11-11 13:29:59 -08:00
keepalive Comment formatting 2017-01-06 17:18:22 -08:00
metadata add more comments to metadata Fromcontext (#986) 2016-11-16 17:42:18 -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 golint 2016-11-15 11:25:52 -08:00
stats fix flaky stats test and reuse functions in stats test 2016-11-10 17:42:52 -08:00
stress Merge pull request #941 from MakMukhi/mmukhi_update_server_relection 2016-11-03 16:04:21 -07:00
tap Support transport tap 2016-11-03 14:21:24 -07:00
test add FailOnNonTempDialError to control if gRPC should fail on non-temp dial error 2016-11-15 11:14:07 -08:00
testdata Updating the test SSL certs. 2015-11-11 14:50:21 -08:00
transport Comment formatting 2017-01-06 17:18:22 -08:00
.travis.yml Skip golint in go 1.5 2016-10-07 11:07:23 -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 add note in readme pre-req section to get the latest go version 2016-11-09 16:50:30 -08: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 fix comments 2016-11-07 15:16:52 -08:00
call_test.go fix wrong context when handling stats 2016-11-08 18:17:14 -08:00
clientconn.go Comment formatting 2017-01-06 17:18:22 -08:00
clientconn_test.go add FailOnNonTempDialError to control if gRPC should fail on non-temp dial error 2016-11-15 11:14:07 -08:00
codegen.sh Update codegen.sh 2015-06-24 11:34:49 +10:00
coverage.sh Allow HTML output for test coverage 2015-12-17 16:13:01 -08:00
doc.go fix the grpc website url 2016-02-19 11:56:12 -08:00
interceptor.go Support client side interceptor 2016-08-26 13:50:38 -07:00
rpc_util.go move inPayload.RecvTime to after unmarshal 2016-11-07 16:29:25 -08:00
rpc_util_test.go Add package stats, and export stats on server side. 2016-11-07 15:16:52 -08:00
server.go fix failing tests 2016-11-08 21:22:07 -08:00
server_test.go *: go vet 2016-07-27 23:39:19 -04:00
stream.go fix comments 2016-11-08 10:31:02 -08: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.5 or later.

A note on the version used: significant performance improvements in benchmarks of grpc-go have been seen by upgrading the go version from 1.5 to the latest 1.7.1.

From https://golang.org/doc/install, one way to install the latest version of go is:

$ GO_VERSION=1.7.1
$ OS=linux
$ ARCH=amd64
$ curl -O https://storage.googleapis.com/golang/go${GO_VERSION}.${OS}-${ARCH}.tar.gz
$ sudo tar -C /usr/local -xzf go$GO_VERSION.$OS-$ARCH.tar.gz
$ # Put go on the PATH, keep the usual installation dir
$ sudo ln -s /usr/local/go/bin/go /usr/bin/go
$ rm go$GO_VERSION.$OS-$ARCH.tar.gz

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