使用 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
方法调用该函数。