๐ฑ go-pluggable is a light Bus-event driven plugin library for Golang.
go-pluggable
implements the event/sub pattern to extend your Golang project with external binary plugins that can be written in any language.
import "github.com/mudler/go-pluggable"
func main() {
var myEv pluggableEventType = "something.to.hook.on"
temp := "/usr/custom/bin"
m = pluggable.NewManager(
[]pluggable.EventType{
myEv,
},
)
// We have a file 'test-foo' in temp.
// 'test-foo' will receive our event payload in json
m.Autoload("test", temp)
m.Register()
// ...
m.Publish(myEv, map[string]string{"foo": "bar"}) // test-foo, will receive our data as json payload
// If you want the result:
m.Publish(myEv, map[string]string{"foo": "bar"},func(p *pluggable.Plugin, r *pluggable.EventResponse) { ... }) // test-foo, will receive our data as json payload
}