Deprecating Go RPC #1289

Open
IRCody opened this Issue Oct 17, 2016 · 3 comments

Comments

Projects
None yet
5 participants
@IRCody
Contributor

IRCody commented Oct 17, 2016

TL;DR

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.

Reasoning

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 plugins

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.

@ConnorDoyle

This comment has been minimized.

Show comment
Hide comment
@ConnorDoyle

ConnorDoyle Oct 18, 2016

Contributor

Removal of support for loading plugins written using the Go RPC libs will be announced well in advance of it’s removal.

Can we be more specific? e.g. would it be removed in version 2.0?

Contributor

ConnorDoyle commented Oct 18, 2016

Removal of support for loading plugins written using the Go RPC libs will be announced well in advance of it’s removal.

Can we be more specific? e.g. would it be removed in version 2.0?

@bjray

This comment has been minimized.

Show comment
Hide comment
@bjray

bjray Oct 18, 2016

Contributor

@ConnorDoyle, we are still working out the targeted scope for 2.0, but in all likelihood it would be delivered with that release, particularly given that it represents a change to our contract.

Contributor

bjray commented Oct 18, 2016

@ConnorDoyle, we are still working out the targeted scope for 2.0, but in all likelihood it would be delivered with that release, particularly given that it represents a change to our contract.

@jcooklin jcooklin changed the title from Deprecating GoRPC to Deprecating Go RPC Nov 16, 2016

@kjlyon

This comment has been minimized.

Show comment
Hide comment
@kjlyon

kjlyon Dec 14, 2016

Contributor

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 feature, as we are no longer requesting comments on this.

This issue will be closed when the files have been deprecated.

Contributor

kjlyon commented Dec 14, 2016

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 feature, as we are no longer requesting comments on this.

This issue will be closed when the files have been deprecated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment