1 个不稳定版本
0.36.0 | 2024 年 7 月 24 日 |
---|
#1127 在 WebAssembly
110 每月下载量
2.5MB
53K SLoC
Wasmi C-API
C 项目中的使用
如果您有一个想使用 Wasmi 的 C 项目,您可以通过 Wasmi 的 C API 进行接口交互
先决条件
从 Wasmi 仓库的根目录,运行以下命令
cmake -S crates/c_api -B target/c_api --install-prefix "$(pwd)/artifacts" &&
cmake --build target/c_api --target install
这些命令将生成以下文件
artifacts/lib/libwasmi.{a,lib}
:静态 Wasmi 库。artifacts/lib/libwasmi.}
:动态(或共享)Wasmi 库。artifacts/include/**.h
:从 C 或 C++ 交互 Wasmi 的头文件。
Rust 项目中的使用
如果您有一个使用 C 或 C++ 库的 Rust 包,该库使用 Wasmi,您可以通过以下方式链接到 Wasmi C API
- 将
wasmi_c_api_impl
包添加到您的Cargo.toml
依赖项中。注意,包名与库名不同。
[dependencies]
wasmi_c_api = { version = "0.35.0", package = "wasmi_c_api_impl" }
- 在您的
build.rs
文件中,当编译您的 C/C++ 源代码时,将 Cwasmi_c_api
头文件添加到包含路径
fn main() {
let mut cfg = cc::Build::new();
// Add the Wasmi and standard Wasm C-API headers to the include path.
cfg
.include(std::env::var("DEP_WASMI_C_API_INCLUDE").unwrap());
.include(std::env::var("DEP_WASMI_C_API_WASM_INCLUDE").unwrap());
// Compile your C code.
cfg
.file("src/your_c_code.c")
.compile("your_library");
}
依赖项
~4MB
~74K SLoC