pub trait WasmRuntime: Send + Sync {
// Required methods
fn initialize(&mut self, config: RuntimeConfig) -> Result<()>;
fn load_module(&self, wasm_bytes: &[u8]) -> Result<Box<dyn WasmModule>>;
fn get_module(&self, id: ModuleId) -> Result<Arc<dyn WasmModule>>;
fn get_module_ids(&self) -> Vec<ModuleId>;
fn create_instance(
&self,
module: &dyn WasmModule,
resources: ResourceLimits,
capabilities: Capabilities,
) -> Result<Box<dyn WasmInstance>>;
fn get_metrics(&self) -> RuntimeMetrics;
fn shutdown(&self) -> Result<()>;
}
Expand description
WebAssembly runtime abstraction
Required Methods§
Sourcefn initialize(&mut self, config: RuntimeConfig) -> Result<()>
fn initialize(&mut self, config: RuntimeConfig) -> Result<()>
Initialize the runtime with configuration
Sourcefn load_module(&self, wasm_bytes: &[u8]) -> Result<Box<dyn WasmModule>>
fn load_module(&self, wasm_bytes: &[u8]) -> Result<Box<dyn WasmModule>>
Load a WASM module from bytes
Sourcefn get_module(&self, id: ModuleId) -> Result<Arc<dyn WasmModule>>
fn get_module(&self, id: ModuleId) -> Result<Arc<dyn WasmModule>>
Get a module by ID
Sourcefn get_module_ids(&self) -> Vec<ModuleId>
fn get_module_ids(&self) -> Vec<ModuleId>
Get all module IDs
Sourcefn create_instance(
&self,
module: &dyn WasmModule,
resources: ResourceLimits,
capabilities: Capabilities,
) -> Result<Box<dyn WasmInstance>>
fn create_instance( &self, module: &dyn WasmModule, resources: ResourceLimits, capabilities: Capabilities, ) -> Result<Box<dyn WasmInstance>>
Create a new instance with resource limits
Sourcefn get_metrics(&self) -> RuntimeMetrics
fn get_metrics(&self) -> RuntimeMetrics
Get runtime metrics