#wavm #api-bindings #virtual-machine

sys libwavm-sys

WAVM (WebAssembly 虚拟机) C API 绑定,用于 Rust

5 个版本

0.1.4 2022年7月7日
0.1.3 2022年7月7日
0.1.2 2022年7月7日
0.1.1 2022年7月6日
0.1.0 2022年7月5日

#627 in WebAssembly

Apache-2.0

12MB
2K SLoC

包含 (静态库, 12MB) lib/libWAVM.a, (静态库, 490KB) lib/libWAVM.lib

libwasvm-sys

WAVM (Web Assembly Virtual Machine) C-API 的 FFI 库

WAVM 可以在这里找到 这里

这些绑定是通过 bindgen 生成的,目前没有进一步封装。因此,您需要自己编写一些包装函数来处理不安全的 API 调用。目前,这些绑定仅适用于 Windows 系统上的静态 WAVM C-API。尽可能快地,将会有 Unix 系统的绑定。

请记住,这个 crate 处于非常早期阶段,并且未经充分测试。此外,提供的接口可能会迅速变化。

入门

您只需要在系统上安装一个可工作的 WAVM。通过使用静态库,这个 crate 应该可以正常工作。

示例代码

extern crate libwavm_sys;

fn main() {
    //Take a look at https://github.com/WAVM/WAVM/blob/master/Examples/embedder/c/embedder-example.c to see how the C API of WAVM works
    
    unsafe {
        let engine = libwavm_sys::wasm_engine_new();
        //Do whatever you want with the engine
    }
}

依赖项