plugin

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 12, 2020 License: Apache-2.0 Imports: 33 Imported by: 1

Documentation

Overview

Package plugin provides the ability to load plugins

Package plugin provides the ability to load plugins

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultBrokers = map[string]func(...broker.Option) broker.Broker{
		"stack.rpc.broker": brokerSrv.NewBroker,
		"service":          brokerSrv.NewBroker,
		"http":             http.NewBroker,
		"memory":           memory.NewBroker,
		"nats":             nats.NewBroker,
	}

	DefaultClients = map[string]func(...client.Option) client.Client{
		"rpc":  cmucp.NewClient,
		"mucp": cmucp.NewClient,
		"grpc": cgrpc.NewClient,
	}

	DefaultRegistries = map[string]func(...registry.Option) registry.Registry{
		"stack.rpc.registry": regSrv.NewRegistry,
		"service":            regSrv.NewRegistry,
		"mdns":               mdns.NewRegistry,
		"memory":             rmem.NewRegistry,
	}

	DefaultSelectors = map[string]func(...selector.Option) selector.Selector{
		"default": selectorR.NewSelector,
		"dns":     dns.NewSelector,
		"cache":   selectorR.NewSelector,
		"router":  router.NewSelector,
		"static":  static.NewSelector,
	}

	DefaultServers = map[string]func(...server.Option) server.Server{
		"rpc":  smucp.NewServer,
		"mucp": smucp.NewServer,
		"grpc": sgrpc.NewServer,
	}

	DefaultTransports = map[string]func(...transport.Option) transport.Transport{
		"memory": tmem.NewTransport,
		"http":   thttp.NewTransport,
		"grpc":   tgrpc.NewTransport,
		"quic":   quic.NewTransport,
	}
)
View Source
var (
	// Default plugin loader
	DefaultPlugin = NewPlugin()
)

Functions

func Build

func Build(path string, c *Config) error

func Init

func Init(c *Config) error

Types

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL