Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Deprecating Go RPC #1289
As Snap makes the move to gRPC, we will officially consider the Go RPC plugin libraries deprecated. All plugin authors should consider migrating to utilize the new gRPC. We currently have gRPC plugin libraries for Go and C++.
Plugins written using Go RPC plugins libs will continue to work after the 1.0 release. Removal of support for loading plugins written using the Go RPC libs will be announced well in advance of it’s removal.
It is our goal to provide the ability to write plugins in many languages. We think this is best accomplished by utilizing gRPC. By standardizing on a gRPC interface we can immediately have plugins written in any language that gRPC supports. We plan to offer plugin libs for more popular languages, see: Go libary, C++ library but due to the nature of gRPC nothing is stopping someone from taking the proto file and generating code in their favorite gRPC supported language.If you’re interested in another language you can let us know by opening an issue to let us know or writing your on. We would be happy to link to community created libraries.
What this means for plugins using Go RPC
Plugins written using Go RPC will continue to work for the foreseeable future. The exact timing of when support for them will be dropped hasn’t been decided yet. It will be after the 1.0 release and will be communicated well in advance of it’s removal.
Converting a plugin to the new libraries should be straightforward. Most of the code will be the same/very similar. For an example of what a converted plugin looks like see the graphite publisher. To get help converting an existing plugin (or writing a new one) come join us on slack.
In PR #1291 I added warnings in the top of each file to be deprecated as well as in the logs which display when a legacy plugin is loaded. I am updating the type of this issue to be a
This issue will be closed when the files have been deprecated.