Runtime

Trait Runtime 

Source
pub trait Runtime
where Self: Debug,
{
Show 22 methods // Required methods fn networking(&self) -> &DynVirtualNetworking; fn task_manager(&self) -> &Arc<dyn VirtualTaskManager>; fn source(&self) -> Arc<dyn Source + Send + Sync>; // Provided methods fn package_loader(&self) -> Arc<dyn PackageLoader + Send + Sync> { ... } fn module_cache(&self) -> Arc<dyn ModuleCache + Send + Sync> { ... } fn engine(&self) -> Engine { ... } fn engine_with_suggested_opts( &self, suggested_opts: &SuggestedCompilerOptimizations, ) -> Result<Engine, CompileError> { ... } fn new_store(&self) -> Store { ... } fn http_client(&self) -> Option<&DynHttpClient> { ... } fn tty(&self) -> Option<&(dyn TtyBridge + Send + Sync)> { ... } fn resolve_module<'a>( &'a self, input: ModuleInput<'a>, engine: Option<&Engine>, on_progress: Option<ModuleLoadProgressReporter>, ) -> BoxFuture<'a, Result<Module, SpawnError>> { ... } fn resolve_module_sync( &self, input: ModuleInput<'_>, engine: Option<&Engine>, on_progress: Option<ModuleLoadProgressReporter>, ) -> Result<Module, SpawnError> { ... } fn load_command_module( &self, cmd: &BinaryPackageCommand, ) -> BoxFuture<'_, Result<Module, SpawnError>> { ... } fn load_command_module_sync( &self, cmd: &BinaryPackageCommand, ) -> Result<Module, SpawnError> { ... } fn load_module<'a>( &'a self, wasm: &'a [u8], ) -> BoxFuture<'a, Result<Module, SpawnError>> { ... } fn load_module_sync(&self, wasm: &[u8]) -> Result<Module, SpawnError> { ... } fn load_hashed_module( &self, module: HashedModuleData, engine: Option<&Engine>, ) -> BoxFuture<'_, Result<Module, SpawnError>> { ... } fn load_hashed_module_sync( &self, wasm: HashedModuleData, engine: Option<&Engine>, ) -> Result<Module, SpawnError> { ... } fn on_taint(&self, _reason: TaintReason) { ... } fn read_only_journals<'a>( &'a self, ) -> Box<dyn Iterator<Item = Arc<DynReadableJournal>> + 'a> { ... } fn writable_journals<'a>( &'a self, ) -> Box<dyn Iterator<Item = Arc<DynJournal>> + 'a> { ... } fn active_journal(&self) -> Option<&DynJournal> { ... }
}
Expand description

Runtime components used when running WebAssembly programs.

Think of this as the “System” in “WebAssembly Systems Interface”.

Required Methods§

Source

fn networking(&self) -> &DynVirtualNetworking

Provides access to all the networking related functions such as sockets.

Source

fn task_manager(&self) -> &Arc<dyn VirtualTaskManager>

Retrieve the active VirtualTaskManager.

Source

fn source(&self) -> Arc<dyn Source + Send + Sync>

The package registry.

Provided Methods§

Source

fn package_loader(&self) -> Arc<dyn PackageLoader + Send + Sync>

A package loader.

Source

fn module_cache(&self) -> Arc<dyn ModuleCache + Send + Sync>

A cache for compiled modules.

Source

fn engine(&self) -> Engine

Get a [wasmer::Engine] for module compilation.

Source

fn engine_with_suggested_opts( &self, suggested_opts: &SuggestedCompilerOptimizations, ) -> Result<Engine, CompileError>

Source

fn new_store(&self) -> Store

Create a new wasmer::Store.

Source

fn http_client(&self) -> Option<&DynHttpClient>

Get a custom HTTP client

Source

fn tty(&self) -> Option<&(dyn TtyBridge + Send + Sync)>

Get access to the TTY used by the environment.

Source

fn resolve_module<'a>( &'a self, input: ModuleInput<'a>, engine: Option<&Engine>, on_progress: Option<ModuleLoadProgressReporter>, ) -> BoxFuture<'a, Result<Module, SpawnError>>

The primary way to load a module given a module input.

The engine to use can be optionally provided, otherwise the most appropriate engine should be selected.

An optional progress reporter callback can be provided to report progress during module loading.

Source

fn resolve_module_sync( &self, input: ModuleInput<'_>, engine: Option<&Engine>, on_progress: Option<ModuleLoadProgressReporter>, ) -> Result<Module, SpawnError>

Sync variant of Self::resolve_module.

Source

fn load_command_module( &self, cmd: &BinaryPackageCommand, ) -> BoxFuture<'_, Result<Module, SpawnError>>

👎Deprecated since 0.601.0: Use resolve_module instead

Load the module for a command.

Will load the module from the cache if possible, otherwise will compile.

NOTE: This always be preferred over Self::load_module to avoid re-hashing the module!

Source

fn load_command_module_sync( &self, cmd: &BinaryPackageCommand, ) -> Result<Module, SpawnError>

👎Deprecated since 0.601.0: Use resolve_module_sync instead

Sync version of Self::load_command_module.

Source

fn load_module<'a>( &'a self, wasm: &'a [u8], ) -> BoxFuture<'a, Result<Module, SpawnError>>

👎Deprecated since 0.601.0: Use resolve_module instead

Load a WebAssembly module from raw bytes.

Will load the module from the cache if possible, otherwise will compile.

Source

fn load_module_sync(&self, wasm: &[u8]) -> Result<Module, SpawnError>

👎Deprecated since 0.601.0: Use load_command_module or load_hashed_module instead - this method can have high overhead

Synchronous version of Self::load_module.

Source

fn load_hashed_module( &self, module: HashedModuleData, engine: Option<&Engine>, ) -> BoxFuture<'_, Result<Module, SpawnError>>

Load a WebAssembly module from pre-hashed data.

Will load the module from the cache if possible, otherwise will compile.

Source

fn load_hashed_module_sync( &self, wasm: HashedModuleData, engine: Option<&Engine>, ) -> Result<Module, SpawnError>

Synchronous version of Self::load_hashed_module.

Source

fn on_taint(&self, _reason: TaintReason)

Callback thats invokes whenever the instance is tainted, tainting can occur for multiple reasons however the most common is a panic within the process

Source

fn read_only_journals<'a>( &'a self, ) -> Box<dyn Iterator<Item = Arc<DynReadableJournal>> + 'a>

The list of all read-only journals which will be used to restore the state of the runtime at a particular point in time

Source

fn writable_journals<'a>( &'a self, ) -> Box<dyn Iterator<Item = Arc<DynJournal>> + 'a>

The list of writable journals which will be appended to

Source

fn active_journal(&self) -> Option<&DynJournal>

The snapshot capturer takes and restores snapshots of the WASM process at specific points in time by reading and writing log entries

Implementors§