You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I started playing around with this idea, but it is actually not as easy as I thought. You cannot just import "github.com/aergoio/aergo/types" in a plugin, as that contains a bunch of dependencies, some of which (e.g. grpc -> net/trace) complain when multiple instance of them are loaded in a binary. The actor/component has a similar problem.
In order to make internal types available for other Go packages, the basic types should be usable in a more standalone way.
We decided to not pursue this for now. For most cases discussed so far, a standalone program is almost as effective as a plugin. We may revisit this issue later.
This is a proposal to implement a plugin architecture for aergosvr.
Why plugins?
What features does a plugin need?
Apart from registering plugins, we will need some additional features in the core.
Plugins could just be actors, that way they could even change some existing behaviors instead of just adding features.
Example use cases
Implementation ideas / pseudocode
Go supports plugins. They can be built separately and injected at runtime.
There a working example for a feature that should be a plugin here: #13
The text was updated successfully, but these errors were encountered: