SSVM(SecondStateVM)是一个非常受欢迎的WebAssembly虚拟机,针对服务端的高性能应用程序进行了优化。凭借先进的AOT(AheadofTime编译器)支持,SSVM已经成为最快的WebAssembly虚拟机之一。
最新的SSVM0.7版本发布了一系列强大且独一无二的功能,这些功能使得SSVM进一步差异化,并巩固了SSVM作为领先的云原生应用程序运行时的地位。
WebAssembly提案
SSVM支持社区正在讨论与设计的WebAssembly功能和提案。这些提案可能成为WebAssembly的正式规范。例如,SSVM支持WebAssembly程序的WASI(WebAssembly系统接口)规范,从而可以与主机Linux操作系统安全地交互。在0.7版中,SSVM支持以下提案。
ReferenceTypes。它允许WebAssembly程序与主机应用程序和操作系统交换数据。
Bulkmemoryoperations。WebAssembly程序可以更快地访问内存,并且在大容量内存操作中性能更好。
SIMD(单指令多数据运算)。对于有着多核CPU的现代设备,SIMD允许数据处理程序充分利用CPU。SIMD可以大大提高数据应用程序的性能。
此外,SSVM团队正在探索wasi-socket提案,以支持WebAssembly程序中的网络访问。SSVM有望成为第一个支持wasi-socket的WebAssembly虚拟机。
WASI的服务端应用扩展
SSVM与其他WebAssembly虚拟机的主要区别在于对非标准扩展的支持。WASI规范为开发者提供了一种机制,可以有效、安全地扩展WebAssembly虚拟机。SSVM团队根据实际场景的需求对0.7版本的需求创建了以下类WASI的扩展。未来,SSVM团队会合作、增强和标准化这些扩展和API。
Tensorflow。开发者可以使用简单的RustAPI编写Tensorflow推理函数,然后在SSVM中安全地以本机速度运行该函数。SecondStateFunctions支持此功能。
其他AI框架。除了Tensorflow之外,SecondState团队还为AI框架(例如ONNX和Tengine)构建类WASI的扩展。
存储。SSVM存储接口允许WebAssembly程序读取和写入一个KV数据库。SecondStateFunctions支持此功能。
命令界面。SSVM允许WebAssembly函数在主机操作系统中执行本机命令。它支持传递参数、环境变量、STDIN/STDOUT管道以及用于主机访问的安全策略。SecondStateFunctions中的