Struct wasmtime::Engine[][src]

pub struct Engine { /* fields omitted */ }

An Engine which is a global context for compilation and management of wasm modules.

An engine can be safely shared across threads and is a cheap cloneable handle to the actual engine. The engine itself will be deallocate once all references to it have gone away.

Engines store global configuration preferences such as compilation settings, enabled features, etc. You’ll likely only need at most one of these for a program.

Engines and Clone

Using clone on an Engine is a cheap operation. It will not create an entirely new engine, but rather just a new reference to the existing engine. In other words it’s a shallow copy, not a deep copy.

Engines and Default

You can create an engine with default configuration settings using Engine::default(). Be sure to consult the documentation of Config for default settings.


impl Engine[src]

pub fn new(config: &Config) -> Result<Engine>[src]

Creates a new Engine with the specified compilation and configuration settings.

pub fn config(&self) -> &Config[src]

Returns the configuration settings that this engine is using.

pub fn same(a: &Engine, b: &Engine) -> bool[src]

Returns whether the engine a and b refer to the same configuration.

pub fn precompile_module(&self, bytes: &[u8]) -> Result<Vec<u8>>[src]

Ahead-of-time (AOT) compiles a WebAssembly module.

The bytes provided must be in one of two formats:

  • A binary-encoded WebAssembly module. This is always supported.
  • A text-encoded instance of the WebAssembly text format. This is only supported when the wat feature of this crate is enabled. If this is supplied then the text format will be parsed before validation. Note that the wat feature is enabled by default.

This method may be used to compile a module for use with a different target host. The output of this method may be used with Module::deserialize on hosts compatible with the Config associated with this Engine.

The output of this method is safe to send to another host machine for later execution. As the output is already a compiled module, translation and code generation will be skipped and this will improve the performance of constructing a Module from the output of this method.

Trait Implementations

impl Clone for Engine[src]

impl Default for Engine[src]

Auto Trait Implementations

impl !RefUnwindSafe for Engine

impl Send for Engine

impl Sync for Engine

impl Unpin for Engine

impl !UnwindSafe for Engine

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> Borrow<T> for T where
    T: ?Sized

impl<T> BorrowMut<T> for T where
    T: ?Sized

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,