Stability of DLL/shared library support


I am trying to write an application with golang 1.9, and this application shall has several pluggable plugins. I know there are several ways to implement the plugin system. Most common implementations of this is to use RPC cast, and here is an example. But I would rather like to use DLL than RPC.

One of my concerns is that if the DLL support in golang is stable enough for production or not… Another concern is that I am not quite clear about the difference of mechanisms between shared & plugin. I googled a lot, but I still do not understand their usage and difference.


  1. Is DLL support in Golang stable enough?
  2. How different is build mode shared from plugin? (with some explain would be better)


The main obstacle here is that the plugin package works on Linux only, does not support unloading of plugins, and has bugs that seem severe enough to mention them in the plugin documentation.

So until the plugin package gets more mature, you might want to consider alternative approaches. I wrote an overview of plugin techniques a while ago - maybe you find something useful there.

It’s helpful, thx. I plan to use gRPC in my plugin system now.

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.