The Go language implementation of gRPC. HTTP/2 based RPC
Go to file
Mark D. Roth 21f8ed3094 Merge pull request #1041 from markdroth/service_config_doc_fix
Update comment in service config struct.
2017-01-27 07:26:01 -08:00
Documentation Merge pull request #937 from menghanl/reflection_tutorial 2016-11-29 17:57:20 -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 Debugging tests for AuthInfo (#1046) 2017-01-11 11:10:52 -08:00
examples Merge pull request #937 from menghanl/reflection_tutorial 2016-11-29 17:57:20 -08:00
grpclb Grpclb: Support server list expiration (#962) 2016-11-16 15:26:18 -08: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 call cancel on context in DoTimeoutOnSleepingServer 2017-01-05 13:01:42 -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 Change stats APIs (#1030) 2017-01-09 17:11:32 -08: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 the initial service config support (#1009) 2016-12-19 16:31:00 -08:00
testdata Updating the test SSL certs. 2015-11-11 14:50:21 -08:00
transport Change stats APIs (#1030) 2017-01-09 17:11:32 -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 Change stats APIs (#1030) 2017-01-09 17:11:32 -08:00
call_test.go fix wrong context when handling stats 2016-11-08 18:17:14 -08:00
clientconn.go Change stats APIs (#1030) 2017-01-09 17:11:32 -08:00
clientconn_test.go Add the initial service config support (#1009) 2016-12-19 16:31:00 -08: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 Support client side interceptor 2016-08-26 13:50:38 -07:00
rpc_util.go Change max message size fields from uint64 to uint32. 2017-01-26 14:43:08 -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 Change stats APIs (#1030) 2017-01-09 17:11:32 -08:00
server_test.go *: go vet 2016-07-27 23:39:19 -04:00
stream.go Change stats APIs (#1030) 2017-01-09 17:11:32 -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