plugin

package
v1.1.2 Latest Latest
Warning

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

Go to latest
Published: May 26, 2026 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package plugin provides a plugin system for loading APOC function packages.

This package allows APOC function packages to be loaded/unloaded at runtime, enabling dynamic extension of Cypher query capabilities.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Plugin

type Plugin interface {
	// Name returns the plugin name (e.g., "coll", "text", "math")
	Name() string

	// Version returns the plugin version
	Version() string

	// Description returns a description of the plugin
	Description() string

	// Register registers all functions in this plugin
	Register(reg *registry.FunctionRegistry) error

	// Initialize initializes the plugin with storage
	Initialize(store storage.Storage) error

	// Cleanup cleans up plugin resources
	Cleanup() error
}

Plugin represents a loadable APOC function package.

type PluginInfo

type PluginInfo struct {
	Name        string
	Version     string
	Description string
	Functions   []string
}

PluginInfo returns information about a loaded plugin.

type PluginManager

type PluginManager struct {
	// contains filtered or unexported fields
}

PluginManager manages loaded plugins.

func GetGlobalManager

func GetGlobalManager(store storage.Storage) *PluginManager

GetGlobalManager returns the global plugin manager.

func NewPluginManager

func NewPluginManager(store storage.Storage) *PluginManager

NewPluginManager creates a new plugin manager.

func (*PluginManager) AllInfo

func (pm *PluginManager) AllInfo() []*PluginInfo

AllInfo returns information about all loaded plugins.

func (*PluginManager) Get

func (pm *PluginManager) Get(name string) (Plugin, bool)

Get retrieves a loaded plugin.

func (*PluginManager) Info

func (pm *PluginManager) Info(name string) (*PluginInfo, error)

Info returns information about a loaded plugin.

func (*PluginManager) IsLoaded

func (pm *PluginManager) IsLoaded(name string) bool

IsLoaded checks if a plugin is loaded.

func (*PluginManager) List

func (pm *PluginManager) List() []string

List returns all loaded plugin names.

func (*PluginManager) Load

func (pm *PluginManager) Load(plugin Plugin) error

Load loads a plugin and registers its functions.

func (*PluginManager) LoadAll

func (pm *PluginManager) LoadAll(plugins []Plugin) error

LoadAll loads multiple plugins.

func (*PluginManager) Unload

func (pm *PluginManager) Unload(name string) error

Unload unloads a plugin and unregisters its functions.

func (*PluginManager) UnloadAll

func (pm *PluginManager) UnloadAll() error

UnloadAll unloads all plugins.

Jump to

Keyboard shortcuts

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