Wasmer 是支持 WASI 和 Emscripten 的通用 WebAssembly 运行时,提供基于 WebAssembly 的超轻量级容器,专注于支持在任何平台上运行 WASM 代码“从桌面端到云端、以及 IoT 设备,并且能嵌入在任何编程语言中”。

编译 | 刘春霖  责编 | 杨紫艳

出品 | CSDN(ID:CSDNnews)

Wasmer 3.0 已正式发布。

创始人 Syrus Akbary 表示,新版本还能够直接使用“wasmer run”运行 WAPM 包,这是一个新重建的 Rust API,并改进了对 WASI(WebAssembly System Interface)的支持,添加了文件 I/O 和 WebAssembly 的其他功能,以便在浏览器外运行。

Wasmer:从任何语言到任何操作系统

WebAssembly 最初被设计为在 Web 浏览器中,具有接近本机的性能,安全运行以其他语言(如 C/ c++ )编写的代码。Luke Wagner 曾在自己的 Mozilla 博客上发布了一条公告:“我很高兴向大家报告,我们在 Mozilla 开始跟 Chromium、Edge 和 WebKit 的工程师们合作创建新的标准——WebAssembly。它定义了一种可移植,而且尺寸和加载效率更高的格式与执行模型,专供 Web 编译场景使用。”在 W3 的协助下,核心 Wasm 规范已经被列为“推荐”项目,且各大主流浏览器也都为其提供支持。并且多数语言都已经能够支持 Wasm。

在此期间,Wasm 在浏览器之外的优势也被越来越多的人所注意。当前 JavaScript 经常被用来在服务器上运行,如 Edge 函数或 Cloudflare 工作人员,而 Wasm 正好适合这种环境。Wasmer 是在非浏览器上下文中运行 Wasm 的另一种方式,为其他跨平台运行时(如Java)提供了一个潜在的替代方案。

Wasmer 在 GitHub 上将自己描述为“一个快速且安全的WebAssembly 运行,使超轻量级的容器可以在任何地方运行:从桌面到云、边缘和物联网设备。”

在这过程中,已经有很多人认为 Wasm 的未来就在于能在浏览器之外运行它。当前的新标准使 WebAssembly 能够在浏览器之外使用,但是否值得使用呢?

事实上,正是这些特性使它适用于浏览器,并更适用于云。

适用于浏览器,更适用于云

Web 浏览器中的语言运行时有几个必须满足的特征,而这些特征在云计算中也同样非常重要。

  • 安全性:如果要在浏览器中运行不受信任的代码,则需要确保它是独立运行的,云计算也是如此。

  • 跨平台/跨架构:当开发人员为浏览器构建代码时,当然希望编写一次,可以让它在任何地方运行。这也是云计算非常需要的特性。

  • 多语言:WebAssembly 项目的一个大目标,就是将浏览器扩展到多种语言。云开发并不像浏览器开发那样以 JS 为中心,所以多语言支持不是可选的。

  • 速度:没有人愿意等待网页加载,而云计算上也是如此。瞬时加载意味着快速扩展。

  • 效率:浏览器在消耗方面会受到限制,云基础设施也是一样,运行时的效率越高,运营成本就越低。

  • 代码大小:下载的快慢,在很大程度上取决于要下载怎样的对象。较小的二进制文件则意味着下载的会更快,这类对象在云端也能够更快移动。

这一切都代表了 Wasm 在云端的核心优势,比其他云服务更低的运行成本。Wasmer 3.0 有哪些更新后的新内容呢?

Wasmer 3.0 

  1. Wasmer 现在可以通过 wasmer run 直接运行 WAPM 包:开发者可以将任何 wapm.io 上的组件,传递给 Wasmer 命令行工具,像是使用 wasmer run python/python 指令,就可以从该组件注册表下载并且执行 Python 组件,官方表示,这大幅简化了以 Wasmer 执行从 WAPM 运行 WASI 可执行文件的流程。

  2. 更好的 API 和内存管理:Wasmer Rust API 经过重新设计,拥有新的 API 和内存管理方式,开发者现在可以将 Wasm 对象存储在 Store 中,另外,官方还加入 MemoryView,并且添加在浏览器运行的 wasmer-js,提供与本机原生 Wasmer 相同功能。

  3. 简化了引擎的工作方式:在引擎架构上,开发团队也作出改进,Wasmer 之前有不同引擎概念,包括 dylib、universal 等,现在开发团队将其简化为一,使开发者能够更方便地重用程序代码。

  4. 零拷贝反序列化的工件:Wasmer 3.0 也具有零复制反串行化功能,这项更新可明显提高执行性能。

  5. 支持为任何平台创建本机可执行程序:由于 Wasmer 3.0 的 create-exe 子命令获得改进,Wasmer 现在可以将 WebAssembly 文件转换成为本机 Windows、Linux 或 Mac OS 可执行文件,这允许用户不需要安装 Wasmer,就能够发布可执行文件。

Wasmer WASI 实例也越来越成熟了,开发团队修复文件系统中的多个错误,并且使用 WebAssembly 接口重新设计内部类别,方便在未来加入更多新功能。虽然 Wasm 目前还有需要完善的地方,但在未来会更美好。

参考链接:

https://devclass.com/2022/11/25/wasmer-3-0-released/

https://wasmer.io/posts/announcing-wasmer-3.0

https://www.wasm.builders/thomastaylor312/why-webassembly-belongs-outside-the-browser-331a

☞C++ 首超 Java,与 Python、C 共角逐年度最佳编程语言奖!
☞PyTorch 2.0 发布,一行代码将训练提速 76%!
☞AMD 回击黄仁勋:摩尔定律没死;英国 22% 的技术人员年龄 50 岁或以上;PyTorch 2.0 发布|极客头条

Wasmer 3.0 发布,可在浏览器外运行 WebAssembly相关推荐

  1. 有关Silverlight3.0在浏览器外运行的问题

    这几天在学习Silverlight3.0的开发知识,从网上得知Silverlight3.0 beta版与Silverlight3.0 RTW版在浏览器外运行的操作方法有所改变,故写出来与大家分享. 按 ...

  2. 腾讯回应 CDC 部门解散:不涉及人员优化;苹果 iCloud+ 在全球多地宣布涨价 ;Wasmer 4.0 发布|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  3. Node.js 11.12.0 发布,服务器端的 JavaScript 运行环境

    Node.js 11.12.0 发布了.Node.js 是一个基于 Chrome V8 引擎的 JavaScript runtime,使用高效.轻量级的事件驱动.非阻塞 I/O 模型. 新版本更新亮点 ...

  4. Node.js 11.14.0 发布,服务器端的 JavaScript 运行环境

    Node.js 11.14.0 发布了.Node.js 是一个基于 Chrome V8 引擎的 JavaScript runtime,使用高效.轻量级的事件驱动.非阻塞 I/O 模型. 新版本更新亮点 ...

  5. 百度网盘将推出单次会员服务;苹果回应否认操纵搜索结果;Node.js 12.7.0 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  6. 微信支持手机温度监控;苹果、谷歌和微软扩大对无密码登录的支持;可在浏览器中运行Python应用的框架发布 | EA周报...

    EA周报 2022年5月7日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.硬核新功能!微信支持手机温度监控 2.IP代理畸形产业爆火 最低6元可更改 ...

  7. 腾讯回应 PC 微信扫描浏览器 cookies;约会网站 228 万用户数据泄露;Java 1.0 发布 25周年 | 极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...

  8. 余承东吐槽苹果续航;微软 IE 浏览器被曝漏洞;React Native 0.61.0 发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  9. java 7 发布,【UC浏览器】Java平台7.0正式版发布啦

    [UC浏览器]Java平台7.0正式版发布啦 UC浏览器是UC 优视科技开发的一款手机浏览器,支持WEB.WAP页面浏览,速度快而稳定,页面排版美观:具有网站导航.搜索.下载.个人数据管理等功能,您能 ...

最新文章

  1. Windows - CMD窗口UTF8编码乱码问题的解决!
  2. 后处理安装_你所不了解的国六后处理
  3. 密码体制Feistel 密码的相关知识
  4. idea redis 插件_Redis客户端RDM收费后,还有哪些开源的替代品呢?
  5. 2020-12-15 CPU设计复盘
  6. RancherOS v1.5.0发布
  7. 中国移动首款自主品牌5G手机上市:同步支持NSA/SA
  8. Git入门教程(2)
  9. 如何从JQuery中的each()函数中断/退出? [重复]
  10. windows server 2008 r2 x64 enterprise service pack1中aspjpeg.dll安装
  11. Android KK NuPlayer
  12. 平凡之路_2022年
  13. 洛谷 P4147 玉蟾宫
  14. linux系统外接硬盘_Mac如何在外置硬盘上安装Linux
  15. 羞羞的和成人机器人恋爱,或许这是“寂寞经济”催生的新风口
  16. op积分上反馈电阻 作用 理解 op 积分
  17. 极速模式下java无法加载_谷歌和360急速模式 下的XMLHttpRequest 的onprogress事件失效...
  18. 处理Java连接不上hdfs
  19. java和胧村正差不多的游戏_对外行来说,怎麽把脑中一个游戏构思变成现实?...
  20. python3豆瓣电影排行榜爬取

热门文章

  1. IB化学考什么?这些知识点请收藏
  2. html css文字颜色代码,html的颜色怎么 HTML字体颜色代码怎么获取
  3. 【2014,羽翼渐丰振翅飞】
  4. STM8S105 TIM1 TIM2 定时器的定时时间初始化
  5. Mysql 开启事件计划
  6. 英语四级作文计算机,英语四级作文关于电脑
  7. 【论文写作】如何写引言?应该思考什么问题?总体架构!!!
  8. python爬虫在线测试_Python爬虫的初步测试:在B站评论区爬虫,python,初试,取
  9. R语言中rattle安装,GTK+反复不成功的问题
  10. 君安思危,测试要赶上开发的脚步