跳到主要内容

WasmEdge 集成

WasmEdge 是云原生和边缘计算应用的“无服务器”运行时。它允许开发人员安全地将第三方或“本地”函数嵌入主机应用程序或分布式计算框架中。

将 WasmEdge 嵌入到主机应用程序中

WasmEdge 的一个主要用例是从主机应用程序启动虚拟机实例。根据你的主机应用程序编程语言,你可以使用 WasmEdge SDK 来启动和调用 WasmEdge 函数。

不过,WebAssembly 规范仅支持用于 WebAssembly 字节码函数的非常有限的输入参数和返回值的数据类型。要传递复杂数据类型(例如字符串或数组)作为来自 Rust 编译的 WebAssembly 的调用参数,你应该使用wasmedge-bindgen提供的 bindgen 解决方案。我们目前在 RustGo 中支持wasmedge-bindgen

使用 WasmEdge 作为类似 Docker 的容器

WasmEdge 提供符合 OCI 规范的接口。你可以使用诸如 CRI-O、Docker Hub 和 Kubernetes 之类的容器工具来编排和管理 WasmEdge 运行时。

从 WasmEdge 调用原生宿主函数

WasmEdge 的一个关键特性是其可扩展性。WasmEdge API 允许开发人员将来自主机编程语言的“主机函数”注册到 WasmEdge 实例中,并从 WebAssembly 程序中调用这些函数。

这是一个示例,演示了 WasmEdge 中的 JavaScript 程序调用底层操作系统中基于 C 的主机函数。

主机函数打破了 WASM 沙箱,以便访问底层操作系统或硬件。但这种沙箱破坏是经过系统操作者明确许可的。