The internal gRPC API for the Synse platform.
This API enables bi-directional communication between Synse Server and its registered data-providing plugins. This API is kept in its own repository since it is used by multiple components written in different languages. This repo contains:
- The Synse gRPC spec (synse.proto)
- The auto-generated gRPC code for Go (go/)
- The auto-generated gRPC code for Python with a simple client wrapper (python/)
go get github.com/vapor-ware/synse-server-gprc/go
pip install synse_grpc
If changes need to be made to the gRPC API, it is important to ensure backwards compatibility
with the existing API spec. See the gRPC documentation for details on this. Additionally, the
files within the go/
directory and the synse_pb2.py
and synse_pb2_grpc.py
files in the
python/
directory are auto-generated and should not be modified manually. Instead, the
protobuf spec (synse.proto)
should be modified and new source files should be generated. Makefile targets are provided to
make this simple:
make all
Source files for a single supported language may be built with the language-specific target, e.g.
# auto-generate the Python source files
make python
# auto-generate the Go source files
make go
A new release is triggered by GitHub tag. The version of the release is defined in
python/synse_grpc/__init__.py
. The version should follow the SemVer spec. Once a
corresponding tag is pushed (e.g. via make github-tag
), CI will package, release,
and publish any artifacts.
Releasing and artifact publishing should not be done manually.
To see a list of available make targets and a brief description, use
make help
If there is a bug or other issue you would like to report, please open a GitHub issue and provide as much context around the bug/issue as possible.