Crate fusabi_plugin_runtime

Crate fusabi_plugin_runtime 

Source
Expand description

§fusabi-plugin-runtime

Plugin loader, hot-reload, and runtime for Fusabi plugins (fsx & fzb) with manifest validation and capability enforcement.

This crate provides:

  • Plugin Loading - Load plugins from source (.fsx) or bytecode (.fzb)
  • Manifest Validation - Validate plugin manifests and enforce requirements
  • Capability Enforcement - Ensure plugins only use declared capabilities
  • Hot Reload - Automatically reload plugins when files change
  • Lifecycle Management - Initialize, run, and cleanup plugins
  • Metrics Hooks - Track plugin performance and usage

§Quick Start

use fusabi_plugin_runtime::{PluginLoader, LoaderConfig, PluginRegistry};

// Create a loader
let loader = PluginLoader::new(LoaderConfig::default())?;

// Load a plugin from manifest
let plugin = loader.load_from_manifest("plugin.toml")?;

// Call plugin functions
let result = plugin.call("main", &[])?;

§Feature Flags

  • serde (default): Enable manifest parsing and serialization
  • watch: Enable filesystem watching for hot reload
  • metrics-prometheus: Prometheus metrics integration

Structs§

ApiVersion
API version specification.
Capabilities
A set of capabilities granted to a script.
Dependency
Plugin dependency specification.
LifecycleHooks
Hooks for lifecycle events.
Limits
Resource limits for script execution.
LoaderConfig
Configuration for the plugin loader.
Manifest
Plugin manifest defining metadata and requirements.
ManifestBuilder
Builder for creating manifests.
Plugin
A loaded Fusabi plugin.
PluginHandle
Handle to a loaded plugin for safe concurrent access.
PluginInfo
Information about a loaded plugin.
PluginLoader
Plugin loader for loading plugins from manifests and source files.
PluginRegistry
Plugin registry for managing loaded plugins.
PluginRuntime
Plugin runtime for managing plugins.
RegistryConfig
Configuration for the plugin registry.
RuntimeConfig
Configuration for the plugin runtime.

Enums§

Capability
Individual capability that can be granted to scripts.
Error
Errors that can occur during plugin operations.
HostError
Errors that can occur during Fusabi host operations.
LifecycleState
Plugin lifecycle state.
Value
A Fusabi runtime value.

Constants§

VERSION
Crate version for compatibility checks.

Traits§

PluginLifecycle
Trait for plugin lifecycle management.

Type Aliases§

Result
Result type alias using [Error].