Trait WasmRuntime

Source
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§

Source

fn initialize(&mut self, config: RuntimeConfig) -> Result<()>

Initialize the runtime with configuration

Source

fn load_module(&self, wasm_bytes: &[u8]) -> Result<Box<dyn WasmModule>>

Load a WASM module from bytes

Source

fn get_module(&self, id: ModuleId) -> Result<Arc<dyn WasmModule>>

Get a module by ID

Source

fn get_module_ids(&self) -> Vec<ModuleId>

Get all module IDs

Source

fn create_instance( &self, module: &dyn WasmModule, resources: ResourceLimits, capabilities: Capabilities, ) -> Result<Box<dyn WasmInstance>>

Create a new instance with resource limits

Source

fn get_metrics(&self) -> RuntimeMetrics

Get runtime metrics

Source

fn shutdown(&self) -> Result<()>

Shutdown the runtime

Implementors§