WasmEdge (曾用名 SSVM) 成为 CNCF 沙箱项目

647 阅读5分钟

WasmEdge runtime (曾名 SSVM)是一个轻量级高性能 WebAssembly (WASM) 虚拟机,为边缘进行了优化。WasmEdge 可以应用于 severless 云函数、SaaS、区块链智能合约、物联网、汽车实时软件应用等多种场景。

wasmedge-joins-cncf-01.png

WasmEdge 最近被 CNCF 基金会接受为沙箱项目。 这是全球范围内首个被 CNCF 纳入托管的开源 WebAssembly runtime 项目。可以预见,WasmEdge 作为边缘云的 mission critical 轻量级runtime,将在 CNCF 的开源云计算领域发挥重要作用。

源代码: github.com/WasmEdge/Wa…

开始

二十五年前,Java 编程语言最初是作为浏览器小组件被发明出来。但 Java 最终是在服务器端大获成功。后来,JavaScript 通过 Node.js 重复了同样的从浏览器到服务器/云的迁移路径。今天,再一次,WebAssembly 正在从浏览器向云迁移。 WasmEdge 在这一历史性迁移中,走到了前沿。

历史总是相似的,但从不重演。虽然 WebAssembly 从浏览器迁移到云的驱动因素与之前的 Java 和 JavaScript 相同,例如得到年轻开发者采用,受欢迎的编程语言 (Rust), 但更重要的是,WebAssembly 也非常适合处理现代云计算工作。特别是,WebAssembly 的轻量级设计和先进的安全模型,加上 Rust 语言的内存安全性,使其很好地适用云上的高性能且使命关键(mission critical) 的应用程序。尤其是在边缘云、物联网设备和汽车上。传统的容器和虚拟机太笨重且速度太慢,WebAssembly 可能成为领先的 runtime 技术。

WasmEdge,曾用名 SSVM,是一个开源 WebAssembly 虚拟机,针对边缘设备进行了优化。根据 IEEE Software 杂志上发表的一篇研究论文,WasmEdge 具有先进的 AOT 编译器支持,是当今市场上最快的 runtime。

WasmEdge 的关键特性

WasmEdge 与 W3C WebAssembly 标准完全兼容。 开箱即用,得到标准语言和编译器工具链的支持,例如 LLVM、Rustc 和 emscripten。 WasmEdge 的与众不同之处在于它对标准与非标准扩展的支持,尤其是在边缘计算方面相关的扩展。

首先,WasmEdge 支持 W3C 可选的 WebAssembly 特性和提案,例如 WebAssembly 系统接口(WASI)规范、引用类型、大容量内存操作和 SIMD。 WasmEdge 也在探索 wasi-socket 提案,以支持 WebAssembly 程序中的网络访问。

此外,WasmEdge 支持针对特定应用场景设计的非标准扩展。

  • Tensorflow。开发者可以使用简单的 Rust API,编写 Tensorflow 推理函数,然后在 WasmEdge 内部以本机速度安全地运行该函数。我们也正在努力支持其他 AI 框架。(欢迎加入 WasmEdge 社区)
  • Storage。 WasmEdge 存储接口允许 WebAssembly 程序读取和写入键值存储。
  • 命令接口。WasmEdge 让 Webassembly 函数可以执行宿主机操作系统的本地命令。它支持传递参数、环境变量、STDIN/STDOUT pipes 和主机访问的安全策略。
  • 以太坊。WasmEdge Ewasm 扩展支持编译为 WebAssembly 的以太坊智能合约。它是以太坊风格的 WebAssembly (Ewasm) 的领先实现。
  • SubstratePallet 让 WasmEdge 能在任何基于 Substrate 的区块链上充当以太坊智能合约执行引擎。

最后,WasmEdge 是一个云原生的 WebAssembly VM。它支持 OCI(开放容器计划)规范,这能够让像 Kubernetes 这样的云原生编排工具管理 WasmEdge 实例。

wasmedge-joins-cncf-02.png WasmEdge 之前名为 SSVM。

应用场景

WasmEdge 为边缘和嵌入式应用场景优化。它能把软件及硬件产品转变为开发者平台。 下面是一些具体的应用场景。

展望未来

WebAssembly 生态仍处于早期阶段。 WasmEdge 由 CNCF 托管,旨在成为 WebAssembly 及其边缘相关扩展的开源“参考实现”。 社区可以首先在 WasmEdge 上试验新的扩展想法,然后将成功的扩展标准化。WasmEdge 社区还将为编译器工具链和 SDK 做出贡献,以支持允许更多编程语言的 WebAssembly 和 WasmEdge 扩展。

加入我们的 WebAssembly 革命!

👉 Slack 组群:加入 CNCF slack channel,搜索 WasmEdge 加入 WasmEdge Slack Channel。

👉 订阅邮件:发邮件至 WasmEdge@googlegroups.com

👉 成为贡献者: 查看贡献灵感清单 开始为 WasmEdge 做贡献