3 ms·
I'm not sure if your question is rhetorical, but Go doesn't have the concept of compiled library that you can link to another binary. So in Go you make availab
by mariusor 3y ago
I'm not sure if your question is rhetorical, but Go doesn't have the concept of compiled library that you can link to another binary.
So in Go you make available the library's source code, and the end-user will download it at build time, or vendor it in the source tree.
- pjmlp 3y agoWhich is a non starter for businesses that don't ship source code.
- lakomen 3y agohttps://pkg.go.dev/plugin https://pkg.go.dev/plugin
- mdaniel 3y ago> Plugins are currently supported only on Linux, FreeBSD, and macOS, making them unsuitable for applications intended to be portable. uh-huh but, in all seriousness: I wonder why that is? I struggle to think of a technical reason that go would be unable to load and invoke a .dll even if one had to name it .so https://github.com/golang/go/blob/go1.21.1/src/plugin/plugin_dlopen.go#L71 https://github.com/golang/go/blob/go1.21.1/src/plugin/plugin...
- pjmlp 3y agoNot only it doesn't work in all platforms, it uses a bare bones C API with unsafe code, and it hasn't been removed yet due to backwards compatibility, as Russ Cox already expressed his opinion that plugin was a mistake from his point of view.
- ncruces 3y agoBusinesses that want to sell libraries without a source code license can ship APIs.
- palata 3y agoRight, so it feels like Go hasn't solved this problem. It just completely ignores it.