mirror of https://github.com/restic/restic.git
68 lines
2.7 KiB
Markdown
68 lines
2.7 KiB
Markdown
|
# gRPC-Go
|
||
|
|
||
|
[![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)
|
||
|
|
||
|
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.
|
||
|
|
||
|
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
|
||
|
-------------
|
||
|
|
||
|
gRPC-Go requires Go 1.9 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](http://godoc.org/google.golang.org/grpc?imports), you need a discussion with gRPC-Go authors and consultants.
|
||
|
|
||
|
Documentation
|
||
|
-------------
|
||
|
See [API documentation](https://godoc.org/google.golang.org/grpc) for package and API descriptions and find examples in the [examples directory](examples/).
|
||
|
|
||
|
Performance
|
||
|
-----------
|
||
|
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).
|
||
|
|
||
|
Status
|
||
|
------
|
||
|
General Availability [Google Cloud Platform Launch Stages](https://cloud.google.com/terms/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`
|
||
|
|
||
|
#### How to turn on logging
|
||
|
|
||
|
The default logger is controlled by the environment variables. Turn everything
|
||
|
on by setting:
|
||
|
|
||
|
```
|
||
|
GRPC_GO_LOG_VERBOSITY_LEVEL=99 GRPC_GO_LOG_SEVERITY_LEVEL=info
|
||
|
```
|
||
|
|
||
|
#### The RPC failed with error `"code = Unavailable desc = transport is closing"`
|
||
|
|
||
|
This error means the connection the RPC is using was closed, and there are many
|
||
|
possible reasons, including:
|
||
|
1. mis-configured transport credentials, connection failed on handshaking
|
||
|
1. bytes disrupted, possibly by a proxy in between
|
||
|
1. server shutdown
|
||
|
|
||
|
It can be tricky to debug this because the error happens on the client side but
|
||
|
the root cause of the connection being closed is on the server side. Turn on
|
||
|
logging on __both client and server__, and see if there are any transport
|
||
|
errors.
|