[Libguestfs] [PATCH nbdkit UNFINISHED] Add the ability to write plugins in golang.

Richard W.M. Jones rjones at redhat.com
Wed Apr 15 18:02:46 UTC 2020


On Wed, Apr 15, 2020 at 06:43:52PM +0100, Daniel P. Berrangé wrote:
> On Wed, Apr 15, 2020 at 06:04:26PM +0100, Richard W.M. Jones wrote:
> > On Wed, Apr 15, 2020 at 05:27:07PM +0100, Daniel P. Berrangé wrote:
> > > On Fri, Apr 10, 2020 at 02:51:52PM +0100, Richard W.M. Jones wrote:
> > > > Similar to C, OCaml and Rust, this is not a plugin per se.  Instead
> > > > it's more of a method and set of tests around writing plugins in
> > > > golang.  They are standalone programs that compile into shared objects
> > > > that nbdkit can then load (so there is no "go plugin" between nbdkit
> > > > and the user plugin, unlike in scripting languages like Perl).
> > > 
> > > Why did you choose this approach ?
> > 
> > Do you mean the design of constructing the .so file directly using
> > --buildmode=c-shared?  I wasn't aware there was any other way to do
> > it.  Should we use some kind of module loading instead?
> 
> No, I was mostly meaning the "copylib" approach to plugins, where the
> plugin author owns the whole stack.

OK I see.  In fact for the OCaml nbdkit bindings we provide a nice
OCaml library which the end user will link to their code to create the
final plugin.  Ideally I want the same thing for Go too.  (For Rust,
unfortunately, we didn't get this far yet, so basically Rust plugins
are programmed to the C API.)

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v




More information about the Libguestfs mailing list