This uses the new Push plugin support added to the plugin SDK in https://github.com/hashicorp/vagrant-plugin-sdk/pull/106 to make the following changes: * The plugin manager on the Go side now registers push plugins * The the _remote_ plugin manager on the Ruby side now calls over to the go side to get push plugins * All the wiring is hooked up such that when a push plugin is replaced with its remote GRPC-client-wielding equivalent, the messages are ferried around.
Vagrant Core Plugins
These are plugins that ship with Vagrant. Vagrant core uses its own plugin system to power a lot of the core pieces that ship with Vagrant. Each plugin will have its own README which explains its specific role.
Generate proto
grpc_tools_ruby_protoc -I . --ruby_out=gen/plugin --grpc_out=gen/plugin ./plugin_server.proto