Wasmer 3.0 带来了 WASI、API、内存管理等方面的改进

瓦斯默

Wasmer 是一种快速且安全的 WebAssembly 运行时,它使超轻量级容器可以在任何地方运行:从桌面到云、边缘和物联网设备

自上次发布以来将近 6 个月后, Wasmer 3.0新版本发布, 开发的项目的第三个主要版本 执行 WebAssembly 模块的运行时 可用于创建可在不同操作系统上运行的通用应用程序,以及不受信任的代码执行。

La 在不同平台上运行相同应用程序的能力 它是通过将代码编译成可以在任何操作系统上运行或嵌入到其他编程语言的程序中的低级 WebAssembly 中间代码来提供的。 程序是运行 WebAssembly 伪代码的轻量级容器。

这些容器与操作系统无关,可以包含最初以任何编程语言编写的代码。

要将 WebAssembly 翻译成当前平台的机器码,你 支持连接不同的构建后端 (Singlepass、Cranelift、LLVM)和电机(使用 JIT 或生成机器代码)。 访问控制和与系统的交互由 WASI(WebAssembly 系统接口)API 提供,它提供了用于处理文件、套接字和操作系统提供的其他功能的编程接口。

该平台 允许您实现接近原生构建的应用程序执行性能。

Wasmer 3.0 的主要新奇之处

在这个新版本的 Wasmer 3.0 中, 能够为任何平台创建本机可执行文件. 命令 ”wasmer创建exe» 已经完全重新设计,可以将 WebAssembly 中间代码文件转换为适用于 Linux、Windows 和 macOS 平台的独立可执行文件,无需安装 Wasmer 即可运行。

提出的另一个新颖之处是 运行 WAPM 包的能力 位于 wapm.io 目录中 使用“wasmer run”命令。 例如,执行“wasmer 运行 python/python» 将从 wapm.io 存储库下载 python 包并运行它。

Wasmer Rust API 已经完全重新设计,改变它处理内存的方式,并提供在 Store 结构中安全存储 Wasm 对象的能力。

在这个新版本的 Wasmer 3.0 中还强调的是 改进的 WASI API 实现 (WebAssembly 系统接口),除了更正 WASI API 中的问题以使用文件系统。 内部类型已使用 WAI(WebAssembly 接口)重新设计,这将允许在未来实现一系列新功能。

除此之外,引擎也得到了简化,因为 JIT、动态和静态绑定(Universal、Dylib、StaticLib)不再使用单独的引擎, 现在提供通用引擎并加载和保存代码 这是在参数设置级别控制的。

为了反序列化工件,使用 rkyv 框架, 它提供零复制操作,即它不需要额外的内存分配,并且只使用最初提供的缓冲区执行反序列化。

其他变化 从这个新版本中脱颖而出:

  • 使用 rkyv 显着提高了启动速度。
  • Singlepass 编译器已得到增强以支持多值函数、提高可靠性并添加对异常处理框架的支持。
  • 组件集 wasmer-js 已实现在 Web 浏览器中运行 Wasmer 并使用库从 JavaScript 与其交互 wasm-绑定.
  • 提出了一种新的结构。 内存视图 它允许在线性存储区中读取和写入数据。

最后,应该提到的是,程序以普通 WebAssembly 模块的形式分发,可以使用 WAPM 包管理器进行管理。 Wasmer 还可以作为库使用,可用于将 WebAssembly 代码嵌入 Rust、C/C++、C#、D、Python、JavaScript、Go、PHP、Ruby、Elixir 和 Java 程序中。

该项目的代码是用 Rust 编写的,并在 MIT 许可证下分发,您可以查看更多信息, 在下面的链接中。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。