使用 WasmEdge 底层 Rust API 运行 WebAssembly 函数

    你可能知道,一些主流编程语言,如 C/C++、Rust、Go 和 Python,都支持将程序编译成 WebAssembly 二进制文件。在本演示中,我们将介绍如何使用 WasmEdge Rust API 调用 WebAssembly 函数,该函数可以用上述任何编程语言编写。

    我们使用 fibonacci.wasm 和 WebAssembly 文件的内容如下所示。语句 (export“fib”(func$fib)) 声明了一个名为 fib 的导出函数。此函数使用给定的 i32 数作为输入计算斐波那契数。我们稍后将使用函数名来实现计算斐波那契数的目标。

    在这一步中,我们将从 WebAssembly 文件创建一个 WasmEdge AST Module 实例。

    在 WasmEdge 中, Vm 定义了一个运行环境,在其中存储和维护各种实例。在下面的演示代码中,我们可以创建一个 WasmEdge store 实例,然后将其用作创建 Vm 实例的输入之一。如果没有明确指定 实例,那么 Vm 将自己创建一个 store

    在步骤 1中,我们得到了一个模块,该模块承载 WebAssembly 中定义的目标 fib 函数。现在,我们可以通过传递导出的函数名 fib ,通过 Vm 实例的 run_wasm_from_module 方法调用该函数。