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
Generating Language Sources
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_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:
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
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.