Gildas Chabot 6728e851bc Write to websocket only on plugins change | 7 years ago | |
---|---|---|
base64Encode | 7 years ago | |
pluginSrc | 7 years ago | |
PITCHME.md | 7 years ago | |
PITCHME.yaml | 7 years ago | |
README.md | 7 years ago | |
buildAndRun.sh | 7 years ago | |
index.html | 7 years ago | |
lca.jpg | 7 years ago | |
main.go | 7 years ago |
Run with:
./buildAndRun.sh
To activate the plugins, move the .so
files from the
plugins.available
directory to the plugins
directory.
Based on dlfcn.h
(dynamic linking) with cgo
Only two functions: Open(path string) (*Plugin, error)
and (p
*Plugin) Lookup(symName string) (Symbol, error)
Two types: Plugin
, Symbol
Nothing special on the code of the plugin, only the
-buildmode=plugin
build option
Example (from the doc):
p, err := plugin.Open("plugin_name.so")
if err != nil {
panic(err)
}
v, err := p.Lookup("V")
if err != nil {
panic(err)
}
f, err := p.Lookup("F")
if err != nil {
panic(err)
}
*v.(*int) = 7
f.(func())() // prints "Hello, number 7"