WebAssembly执行库-Wasmer
Wasmer 是一个用来执行 WebAssembly 二进制程序的库,是支持 WASI 和 Emscripten 的通用 WebAssembly 运行时,提供基于 WebAssembly 的超轻量级容器,专注于支持在任何平台上运行 WASM 代码:从桌面端到云端、以及 IoT 设备,并且能嵌入在任何编程语言中。使用Rust语言开发并在MIT协议下授权使用。
特性
快速又安全. Wasmer在完全沙盒化的环境中以“接近本机”的速度运行 WebAssembly;
可插拔. Wasmer 可以根据你的需求支持不同的编译框架 (LLVM,Cranelift ...);
通用的. 你可以在任何平台(macOS, Linux and Windows) 和芯片组运行 Wasmer;
符合标准. 运行时通过了官方WebAssembly测试集 支持WASI 和Emscripten。
最新版本:3.2
Wasmer 3.2 已于2023年4月下旬正式发布。该版本最大的功能是支持 RISC-V 架构,现在可以在 Linux RISC-V 上运行,既可以用于它的 LLVM 编译器后端,也可以使用它的 Cranelift 编译器。还首次提供了新的 Runners:WCGI 运行程序。WCGI 允许将现有的 CGI 应用程序从 PHP、Python、C、C++、AssemblyScript 等语言编译成 WASI,从而将 “WebAssembly 的强大功能与 CGI 的多功能性和简单性” 结合起来。WCGI 仍然完全沙盒化,Wasmer 团队演示了使用 WCGI 以安全的方式运行 Wordpress,可以通过 Wasmer 博客找到有关 WCGI 的更多详细信息。
此外,新版本使得在 sys 或 js 后端上使用 Wasmer 更加透明,支持在 JavaScriptCore 上运行 Wasmer 3.2。大多数 WAPM 命令现在可以直接在 wasmer CLI 上使用;还添加了各种 API,对 WASI 实现进行了重大重构,以及各种不同的更新和修复。完整的版本改动请在更改日志中查看。
最新版本:4.0
2023年6月发布的4.0有如下主要的变化:
引入新的运行器架构:支持插入自定义运行器,Wasmer 4.0 具有新的运行器架构,允许任何类型的程序在 WebAssembly 上运行。新的运行器架构支持用户直接创建新的 ABI 标准(例如 WebGPU 集成),而无需发布新版本的运行时。目前,Wasmer 支持以下运行程序:Emscripten、WASIX/WASI、WCGI,详情查看此处。
使用 Wasmer 4.0,开发者现在可以在计算机中运行完全沙盒化的 bashshell,以及在 bash Wasmer 包内使用 wasmer run PACKAGE_NAME 来运行发布到 Wasmer 的任何包。而且 Wasmer bash 容器也完全在浏览器上运行(使用完全相同的 Wasmer 容器,并运行完全相同的 WASIX 逻辑)。其他变化:WASIX 到达稳定阶段、将 WAPM 统一到 Wasmer、集成 Wasmer Edge
更多详情查看发行公告。
项目主页:https://github.com/wasmerio/