The Synse gRPC API for plugin communication.

grpc, synse, synse-plugin, synse-server
pip install synse-grpc==3.1.0


Synse gRPC

PyPI Build FOSSA Status

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


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 and 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/ 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.


FOSSA Status