Raxol.Plugins.PluginSystemV2 (Raxol v2.0.1)

View Source

Plugin System v2.0 - Advanced plugin management with enhanced features.

Key Features:

  • Hot-reload with dependency resolution
  • Version-aware dependency management
  • Sandboxed execution for untrusted plugins
  • Plugin marketplace integration
  • Advanced lifecycle management
  • Performance monitoring and isolation

Summary

Functions

Returns a specification to start this module under a supervisor.

Creates a sandboxed environment for untrusted plugins.

Gets plugin status and performance metrics.

Hot-reloads a plugin while preserving state.

Installs a plugin from the marketplace or local source.

Lists available plugins from marketplace.

Loads a plugin with dependency resolution.

Manages plugin dependencies with version resolution.

Types

dependency_spec()

@type dependency_spec() :: {plugin_id(), version_requirement()}

plugin_id()

@type plugin_id() :: String.t()

plugin_manifest()

@type plugin_manifest() :: %{
  name: String.t(),
  version: version(),
  description: String.t(),
  author: String.t(),
  license: String.t(),
  repository: String.t(),
  api_version: version(),
  dependencies: [dependency_spec()],
  dev_dependencies: [dependency_spec()],
  capabilities: [atom()],
  sandbox_required: boolean(),
  trust_level: :trusted | :sandboxed | :untrusted,
  entry_point: atom(),
  hooks: [atom()],
  metadata: map()
}

plugin_state()

@type plugin_state() :: %{
  manifest: plugin_manifest(),
  status: :loaded | :starting | :running | :stopping | :stopped | :failed,
  module: atom(),
  process: pid() | nil,
  supervisor: pid() | nil,
  dependencies: [plugin_id()],
  dependents: [plugin_id()],
  last_reload: DateTime.t(),
  sandbox_context: map() | nil,
  performance_metrics: map()
}

version()

@type version() :: String.t()

version_requirement()

@type version_requirement() :: String.t()

Functions

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

create_sandbox(plugin_id, security_policy)

Creates a sandboxed environment for untrusted plugins.

get_plugin_status(plugin_id)

Gets plugin status and performance metrics.

handle_manager_cast(msg, state)

Callback implementation for Raxol.Core.Behaviours.BaseManager.handle_manager_cast/2.

handle_manager_info(msg, state)

Callback implementation for Raxol.Core.Behaviours.BaseManager.handle_manager_info/2.

hot_reload_plugin(plugin_id, opts \\ [])

Hot-reloads a plugin while preserving state.

install_plugin(source, opts \\ [])

Installs a plugin from the marketplace or local source.

list_marketplace_plugins(filters \\ %{})

Lists available plugins from marketplace.

load_plugin(plugin_id, opts \\ [])

Loads a plugin with dependency resolution.

resolve_dependencies(plugin_manifest)

Manages plugin dependencies with version resolution.

start_link(init_opts \\ [])