Wasmtime and libwasmtime, with crypto extensions
September 19, 2023 ยท View on GitHub
The currently stable version of the Wasmtime WebAssembly runtime, with support for the WASI Cryptography APIs.
Installation
Install the Rust compiler and compile with:
cargo build --release
The resulting executable will be in the target/release directory.
The library (libwasmtime.so, libwasmtime.dylib, libwasmtime.a)
can be compiled with the following command:
cargo build --release -p wasmtime-c-api
The files can be found in target/release and
crates/c-api/wasm-c-api/include.
In this build, the function to enable WASI (wasmtime_linker_define_wasi)
will also enable the crypto extensions, so that no code change to
existing code depending on libwasmtime is necessary.
Usage
wasmtime run --wasi-modules experimental-wasi-crypto module.wasm
WASI-Crypto when wasmtime is used as a Rust dependency
In Rust applications, wasi-crypto can be used directly with
the stock wasmtime crate downloaded from crates.io.
See the wasmtime-crate-usage-example
directory for an example that runs a WebAssembly module with WASI
and WASI-Crypto.