## BDLedger API ### Documentation See [API documentation](..\docs\apis.md) ### Development #### Generating gRPC code in languages ##### Installling tools Download the [Protocol Buffers compiler](https://github.com/protocolbuffers/protobuf/releases) (protoc-3.11.4-*) for your platform and add `protoc` to `PATH` environment variable For generating Go code: ```bash GIT_TAG="v1.4.0-rc.4" go get -d -u github.com/golang/protobuf/protoc-gen-go git -C "$(go env GOPATH)"/src/github.com/golang/protobuf checkout $GIT_TAG go install github.com/golang/protobuf/protoc-gen-go ``` (Update to google.golang.org/protobuf when https://github.com/grpc/grpc-go/pull/3435 resolves) For generating Java code: From `bdledger-sdk-java` run `gradle generateProto` For generating Node.js code, install Node.js then run: ```bash npm install -g grpc-tools ``` For generating TypeScript definitions, also run: ```bash npm install -g protoc-gen-ts ``` For frontend JavaScript: ```bash git clone https://github.com/grpc/grpc-web cd grpc-web sudo make install-plugin ``` References: - [Go Quick Start](https://grpc.io/docs/quickstart/go.html#prerequisites) - [gRPC Go FAQ](https://github.com/grpc/grpc-go#faq) **TODO: Look into [protobuf.js](https://github.com/protobufjs/protobuf.js) for Nodes.js and frontend** **TODO: Look into [Kroto+](https://github.com/marcoferrer/kroto-plus) for Kotlin** ##### Generating code Run: ```bash ./scripts/gen [go] [nodejs] [ts] ``` #### Generateing documentation Install Go then run: ```bash go get -u github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc ./scripts/gen docs ```