Package plugin provides the ability to load plugins

Package plugin provides the ability to load plugins



This section is empty.


View Source
var (
	// Default plugin loader
	DefaultPlugin = NewPlugin()


func Build

func Build(path string, c *Config) error

func Init

func Init(c *Config) error


type Config

type Config struct {
	// Name of the plugin e.g rabbitmq
	Name string
	// Type of the plugin e.g broker
	Type string
	// Path specifies the import path
	Path string
	// NewFunc creates an instance of the plugin
	NewFunc interface{}

Config is the plugin config

func Load

func Load(path string) (*Config, error)

type Plugin

type Plugin interface {
	// Initialise a plugin with the config
	Init(c *Config) error
	// Load loads a .so plugin at the given path
	Load(path string) (*Config, error)
	// Build a .so plugin with config at the path specified
	Build(path string, c *Config) error

Plugin is a plugin loaded from a file

func NewPlugin

func NewPlugin() Plugin

NewPlugin creates a new plugin interface