WasmEdge(以前称为 SSVM)是一个高性能的 WebAssembly(Wasm)虚拟机,为边缘计算进行了优化,包括边缘云和 Software Defined Vehicles。在其 AOT 模式下,WasmEdge 是目前市场上最快的 Wasm VM。由 CNCF 进行托管。
特性:
-
非常快:特别是在启动时(最多快 100 倍)
-
AOT 优化:提供“比原生更快”的性能
-
内存占用小:占用不到 5MB 的内存空间
-
便携的:跨操作系统和 CPU 平台,包括 RTOS
-
Capability-based security:允许计算任务对资源的受控访问
-
AI inference:支持硬件加速的 Tensorflow
-
可嵌入:可轻松嵌入到 JavaScript、Golang 和其他主机应用程序中
-
可管理性:可以由 Kubernetes 配置和管理
-
智能合约:支持主要的区块链协议,包括下一代以太坊
WasmEdge 最重要的用例是在软件产品(如 SaaS、汽车操作系统、边缘节点、甚至区块链节点)中安全地执行用户定义的或社区贡献的代码作为插件。它使第三方开发者、供应商和社区成员能够扩展和定制软件产品。有了WasmEdge,一个软件产品可以成为一个主机平台。
WasmEdge 为其包含的 Wasm 字节码程序提供一个定义明确的执行沙盒。该字节码程序不能访问操作系统资源(例如,文件系统,套接字,环境变量,进程),没有虚拟机的运行器的明确权限。运行者在启动时在虚拟机的配置选项中指定虚拟机可以访问的系统资源(又称基于能力的安全模型)。
WasmEdge 还为其包含的字节码程序提供内存保护。如果该程序试图访问分配给虚拟机的区域之外的内存,虚拟机将以错误信息终止。
WasmEdge及其包含的wasm程序可以作为一个新的进程从CLI启动,或从一个现有的进程启动。如果从一个现有的进程中启动(例如,从一个正在运行的Node.js或Golang程序中启动),虚拟机将作为一个函数在该进程中运行。也可以将WasmEdge VM实例作为一个线程启动。
目前,WasmEdge 还不是线程安全的,这意味着在同一进程的不同线程中运行的VM实例将有可能访问对方的内存。官方表示,其有计划在未来将 WasmEdge 发展成为线程安全的。