On Monday, 1 November 2021 at 13:44:28 UTC chauhan...@gmail.com wrote:

> greeter.go calls plugin.open and it will be work only for one sub version 
> of go. If plugin and binary are made in different sub versions of go1.15 
> then plugin.open will not work.  
>
>
That is correct, that is how it is designed.  Quoting from the link I 
posted before 
<https://www.reddit.com/r/golang/comments/b6h8qq/is_anyone_actually_using_go_plugins/ejkxd2k/?utm_source=reddit&utm_medium=web2x&context=3>
:


   - 
   
   The plugin compiler version must exactly match the program's compiler 
   version. If the program was compiled with 1.11.4, it won't work to compile 
   the plugin with 1.11.5. When distributing a program binary, you must 
   communicate what the compiler version you used is.
   - 
   
   Any packages outside of the standard library that are used by both the 
   plugin and the program must have their versions match *exactly*. This 
   means that when distributing a program binary, you must communicate the 
   exact versions of all dependencies
   
and:

"It seems that the intended use-case for plugins is *in-tree* plugins; when 
you have code you don't want to always include in the main binary, but you 
have no problem with it living in the same git repo and getting compiled at 
the same time. It does *not* seem to be a good way to let users/customers 
add in their own code; there are headaches if you try to use them that way; 
they have to sufficiently emulate your environment when compiling the 
plugin"

If you want a more generic way to do "plugin" type functionality, which is 
less tightly coupled, then I suggest you look at talking gRPC over a 
socket.  There is a go-plugin library 
<https://github.com/hashicorp/go-plugin> for this from Hashicorp, which 
they use in Vault <https://www.vaultproject.io/docs/internals/plugins> etc.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/8026d19b-6bb9-4520-90b1-d4654c02fb4fn%40googlegroups.com.

Reply via email to