]>
Commit | Line | Data |
---|---|---|
15c0b25d AP |
1 | # gRPC-Go |
2 | ||
107c1cdb | 3 | [![Build Status](https://travis-ci.org/grpc/grpc-go.svg)](https://travis-ci.org/grpc/grpc-go) [![GoDoc](https://godoc.org/google.golang.org/grpc?status.svg)](https://godoc.org/google.golang.org/grpc) [![GoReportCard](https://goreportcard.com/badge/grpc/grpc-go)](https://goreportcard.com/report/github.com/grpc/grpc-go) |
15c0b25d AP |
4 | |
5 | The Go implementation of [gRPC](https://grpc.io/): A high performance, open source, general RPC framework that puts mobile and HTTP/2 first. For more information see the [gRPC Quick Start: Go](https://grpc.io/docs/quickstart/go.html) guide. | |
6 | ||
7 | Installation | |
8 | ------------ | |
9 | ||
10 | 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: | |
11 | ||
12 | ``` | |
107c1cdb | 13 | $ go get -u google.golang.org/grpc |
15c0b25d AP |
14 | ``` |
15 | ||
16 | Prerequisites | |
17 | ------------- | |
18 | ||
107c1cdb | 19 | gRPC-Go requires Go 1.9 or later. |
15c0b25d AP |
20 | |
21 | Constraints | |
22 | ----------- | |
23 | 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](http://godoc.org/google.golang.org/grpc?imports), you need a discussion with gRPC-Go authors and consultants. | |
24 | ||
25 | Documentation | |
26 | ------------- | |
27 | See [API documentation](https://godoc.org/google.golang.org/grpc) for package and API descriptions and find examples in the [examples directory](examples/). | |
28 | ||
29 | Performance | |
30 | ----------- | |
31 | See the current benchmarks for some of the languages supported in [this dashboard](https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5652536396611584&widget=490377658&container=1286539696). | |
32 | ||
33 | Status | |
34 | ------ | |
35 | General Availability [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/launch-stages). | |
36 | ||
37 | FAQ | |
38 | --- | |
39 | ||
40 | #### Compiling error, undefined: grpc.SupportPackageIsVersion | |
41 | ||
42 | Please update proto package, gRPC package and rebuild the proto files: | |
43 | - `go get -u github.com/golang/protobuf/{proto,protoc-gen-go}` | |
44 | - `go get -u google.golang.org/grpc` | |
45 | - `protoc --go_out=plugins=grpc:. *.proto` | |
107c1cdb ND |
46 | |
47 | #### How to turn on logging | |
48 | ||
49 | The default logger is controlled by the environment variables. Turn everything | |
50 | on by setting: | |
51 | ||
52 | ``` | |
53 | GRPC_GO_LOG_VERBOSITY_LEVEL=99 GRPC_GO_LOG_SEVERITY_LEVEL=info | |
54 | ``` | |
55 | ||
56 | #### The RPC failed with error `"code = Unavailable desc = transport is closing"` | |
57 | ||
58 | This error means the connection the RPC is using was closed, and there are many | |
59 | possible reasons, including: | |
60 | 1. mis-configured transport credentials, connection failed on handshaking | |
61 | 1. bytes disrupted, possibly by a proxy in between | |
62 | 1. server shutdown | |
63 | ||
64 | It can be tricky to debug this because the error happens on the client side but | |
65 | the root cause of the connection being closed is on the server side. Turn on | |
66 | logging on __both client and server__, and see if there are any transport | |
67 | errors. |