mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-18 15:10:03 +00:00
Switch protobuf generation to buf cli tool (#720)
Current generation of protobuf stubs is hard and there's open issues around it: https://github.com/grpc-ecosystem/grpc-gateway/issues/1065 grpc-gateway author and README suggest to use `buf` instead which intends to be a simpler and more reliable method of protobuf stub generation.
This commit is contained in:
@@ -36,10 +36,11 @@ manager or by downloading one of the releases from the official repository:
|
||||
Then use `go get` to download the following packages:
|
||||
|
||||
```bash
|
||||
go get github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway
|
||||
go get github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2
|
||||
go get google.golang.org/protobuf/cmd/protoc-gen-go
|
||||
go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
|
||||
go get \
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway \
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 \
|
||||
google.golang.org/protobuf/cmd/protoc-gen-go \
|
||||
google.golang.org/grpc/cmd/protoc-gen-go-grpc
|
||||
```
|
||||
|
||||
This will place the following binaries in your `$GOBIN`;
|
||||
@@ -51,15 +52,25 @@ This will place the following binaries in your `$GOBIN`;
|
||||
|
||||
Make sure that your `$GOBIN` is in your `$PATH`.
|
||||
|
||||
## Usage
|
||||
### Linux / macOS
|
||||
|
||||
GoCryptoTrader requires a local installation of the `buf` cli tool that tries to make Protobuf handling more easier and reliable,
|
||||
after [installation](https://docs.buf.build/installation) you'll need to run:
|
||||
|
||||
```shell
|
||||
buf beta mod update
|
||||
```
|
||||
|
||||
After previous command, make necessary changes to the `rpc.proto` spec file and run the generation command:
|
||||
|
||||
```shell
|
||||
buf generate
|
||||
```
|
||||
|
||||
### Windows
|
||||
|
||||
After the above dependencies are required, make necessary changes to the `rpc.proto`
|
||||
spec file and run the generation scripts:
|
||||
|
||||
### Windows
|
||||
|
||||
Run `gen_pb_win.bat`
|
||||
|
||||
### Linux and macOS
|
||||
|
||||
Run `./gen_pb_linux.sh`
|
||||
|
||||
17
gctrpc/buf.gen.yaml
Normal file
17
gctrpc/buf.gen.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
version: v1beta1
|
||||
plugins:
|
||||
- name: go
|
||||
out: ./
|
||||
opt:
|
||||
- paths=source_relative
|
||||
- name: go-grpc
|
||||
out: ./
|
||||
opt:
|
||||
- paths=source_relative
|
||||
- name: grpc-gateway
|
||||
out: ./
|
||||
opt:
|
||||
- paths=source_relative
|
||||
- generate_unbound_methods=true
|
||||
- name: openapiv2
|
||||
out: ./
|
||||
17
gctrpc/buf.lock
Normal file
17
gctrpc/buf.lock
Normal file
@@ -0,0 +1,17 @@
|
||||
# Generated by buf. DO NOT EDIT.
|
||||
version: v1
|
||||
deps:
|
||||
- remote: buf.build
|
||||
owner: beta
|
||||
repository: googleapis
|
||||
branch: main
|
||||
commit: 1c473ad9220a49bca9320f4cc690eba5
|
||||
digest: b1-unlhrcI3tnJd0JEGuOb692LZ_tY_gCGq6mK1bgCn1Pg=
|
||||
create_time: 2021-06-23T20:16:47.788079Z
|
||||
- remote: buf.build
|
||||
owner: grpc-ecosystem
|
||||
repository: grpc-gateway
|
||||
branch: main
|
||||
commit: d19475fa22444a289c46af009acce62c
|
||||
digest: b1-_zhDPyr_Ctc1QRAKuad6_0xvoyPd6QaB22ldm9gzS0Q=
|
||||
create_time: 2021-04-26T15:19:26.742789Z
|
||||
5
gctrpc/buf.yaml
Normal file
5
gctrpc/buf.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
version: v1beta1
|
||||
name: buf.build/gocryptotrader/grpc
|
||||
deps:
|
||||
- buf.build/beta/googleapis
|
||||
- buf.build/grpc-ecosystem/grpc-gateway
|
||||
1
go.mod
1
go.mod
@@ -7,7 +7,6 @@ require (
|
||||
github.com/d5/tengo/v2 v2.8.0
|
||||
github.com/friendsofgo/errors v0.9.2 // indirect
|
||||
github.com/gofrs/uuid v4.0.0+incompatible
|
||||
github.com/golang/protobuf v1.5.2
|
||||
github.com/google/go-querystring v1.1.0
|
||||
github.com/gorilla/mux v1.8.0
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
|
||||
Reference in New Issue
Block a user