其他
Wasmer 3.0 发布,可在浏览器外运行 WebAssembly
Wasmer 是支持 WASI 和 Emscripten 的通用 WebAssembly 运行时,提供基于 WebAssembly 的超轻量级容器,专注于支持在任何平台上运行 WASM 代码“从桌面端到云端、以及 IoT 设备,并且能嵌入在任何编程语言中”。
Wasmer:从任何语言到任何操作系统
适用于浏览器,更适用于云
安全性:如果要在浏览器中运行不受信任的代码,则需要确保它是独立运行的,云计算也是如此。 跨平台/跨架构:当开发人员为浏览器构建代码时,当然希望编写一次,可以让它在任何地方运行。这也是云计算非常需要的特性。 多语言:WebAssembly 项目的一个大目标,就是将浏览器扩展到多种语言。云开发并不像浏览器开发那样以 JS 为中心,所以多语言支持不是可选的。 速度:没有人愿意等待网页加载,而云计算上也是如此。瞬时加载意味着快速扩展。 效率:浏览器在消耗方面会受到限制,云基础设施也是一样,运行时的效率越高,运营成本就越低。 代码大小:下载的快慢,在很大程度上取决于要下载怎样的对象。较小的二进制文件则意味着下载的会更快,这类对象在云端也能够更快移动。
Wasmer 3.0
Wasmer 现在可以通过 wasmer run 直接运行 WAPM 包:开发者可以将任何 wapm.io 上的组件,传递给 Wasmer 命令行工具,像是使用 wasmer run python/python 指令,就可以从该组件注册表下载并且执行 Python 组件,官方表示,这大幅简化了以 Wasmer 执行从 WAPM 运行 WASI 可执行文件的流程。 更好的 API 和内存管理:Wasmer Rust API 经过重新设计,拥有新的 API 和内存管理方式,开发者现在可以将 Wasm 对象存储在 Store 中,另外,官方还加入 MemoryView,并且添加在浏览器运行的 wasmer-js,提供与本机原生 Wasmer 相同功能。 简化了引擎的工作方式:在引擎架构上,开发团队也作出改进,Wasmer 之前有不同引擎概念,包括 dylib、universal 等,现在开发团队将其简化为一,使开发者能够更方便地重用程序代码。 零拷贝反序列化的工件:Wasmer 3.0 也具有零复制反串行化功能,这项更新可明显提高执行性能。 支持为任何平台创建本机可执行程序:由于 Wasmer 3.0 的 create-exe 子命令获得改进,Wasmer 现在可以将 WebAssembly 文件转换成为本机 Windows、Linux 或 Mac OS 可执行文件,这允许用户不需要安装 Wasmer,就能够发布可执行文件。
参考链接:https://devclass.com/2022/11/25/wasmer-3-0-released/https://wasmer.io/posts/announcing-wasmer-3.0https://www.wasm.builders/thomastaylor312/why-webassembly-belongs-outside-the-browser-331a