Wasmer 3.0 发布,可在浏览器外运行 WebAssembly
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
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,就能够发布可执行文件。
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相关推荐
- 有关Silverlight3.0在浏览器外运行的问题
这几天在学习Silverlight3.0的开发知识,从网上得知Silverlight3.0 beta版与Silverlight3.0 RTW版在浏览器外运行的操作方法有所改变,故写出来与大家分享. 按 ...
- 腾讯回应 CDC 部门解散:不涉及人员优化;苹果 iCloud+ 在全球多地宣布涨价 ;Wasmer 4.0 发布|极客头条
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...
- Node.js 11.12.0 发布,服务器端的 JavaScript 运行环境
Node.js 11.12.0 发布了.Node.js 是一个基于 Chrome V8 引擎的 JavaScript runtime,使用高效.轻量级的事件驱动.非阻塞 I/O 模型. 新版本更新亮点 ...
- Node.js 11.14.0 发布,服务器端的 JavaScript 运行环境
Node.js 11.14.0 发布了.Node.js 是一个基于 Chrome V8 引擎的 JavaScript runtime,使用高效.轻量级的事件驱动.非阻塞 I/O 模型. 新版本更新亮点 ...
- 百度网盘将推出单次会员服务;苹果回应否认操纵搜索结果;Node.js 12.7.0 发布 | 极客头条...
快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...
- 微信支持手机温度监控;苹果、谷歌和微软扩大对无密码登录的支持;可在浏览器中运行Python应用的框架发布 | EA周报...
EA周报 2022年5月7日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.硬核新功能!微信支持手机温度监控 2.IP代理畸形产业爆火 最低6元可更改 ...
- 腾讯回应 PC 微信扫描浏览器 cookies;约会网站 228 万用户数据泄露;Java 1.0 发布 25周年 | 极客头条...
「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 丁恩华 出品 | CSDN(ID:CSDNnews ...
- 余承东吐槽苹果续航;微软 IE 浏览器被曝漏洞;React Native 0.61.0 发布 | 极客头条...
快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...
- java 7 发布,【UC浏览器】Java平台7.0正式版发布啦
[UC浏览器]Java平台7.0正式版发布啦 UC浏览器是UC 优视科技开发的一款手机浏览器,支持WEB.WAP页面浏览,速度快而稳定,页面排版美观:具有网站导航.搜索.下载.个人数据管理等功能,您能 ...
最新文章
- Windows - CMD窗口UTF8编码乱码问题的解决!
- 后处理安装_你所不了解的国六后处理
- 密码体制Feistel 密码的相关知识
- idea redis 插件_Redis客户端RDM收费后,还有哪些开源的替代品呢?
- 2020-12-15 CPU设计复盘
- RancherOS v1.5.0发布
- 中国移动首款自主品牌5G手机上市:同步支持NSA/SA
- Git入门教程(2)
- 如何从JQuery中的each()函数中断/退出? [重复]
- windows server 2008 r2 x64 enterprise service pack1中aspjpeg.dll安装
- Android KK NuPlayer
- 平凡之路_2022年
- 洛谷 P4147 玉蟾宫
- linux系统外接硬盘_Mac如何在外置硬盘上安装Linux
- 羞羞的和成人机器人恋爱,或许这是“寂寞经济”催生的新风口
- op积分上反馈电阻 作用 理解 op 积分
- 极速模式下java无法加载_谷歌和360急速模式 下的XMLHttpRequest 的onprogress事件失效...
- 处理Java连接不上hdfs
- java和胧村正差不多的游戏_对外行来说,怎麽把脑中一个游戏构思变成现实?...
- python3豆瓣电影排行榜爬取
热门文章
- IB化学考什么?这些知识点请收藏
- html css文字颜色代码,html的颜色怎么 HTML字体颜色代码怎么获取
- 【2014,羽翼渐丰振翅飞】
- STM8S105 TIM1 TIM2 定时器的定时时间初始化
- Mysql 开启事件计划
- 英语四级作文计算机,英语四级作文关于电脑
- 【论文写作】如何写引言?应该思考什么问题?总体架构!!!
- python爬虫在线测试_Python爬虫的初步测试:在B站评论区爬虫,python,初试,取
- R语言中rattle安装,GTK+反复不成功的问题
- 君安思危,测试要赶上开发的脚步