AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

Wasmer 发布 GA 版本的 WebAssembly 运行时

  • 2021-02-03
  • 本文字数:1236 字

    阅读完需:约 4 分钟

Wasmer发布GA版本的WebAssembly运行时

Wasmer 最新发布了WebAssembly服务器端运行时1.0版,由此形成了一般可用(GA)版。

 

Wasmer提供了基于WebAssembly(简称 Wasm)的超轻量级容器。该系列产品的启动可回溯至两年多前推出的 0.1.0 版,此次发行的 1.0 版是一个重要的里程碑标志,体现了 Wasm 对服务器端的日益关注。

 

Wasmer 1.0 版的主要功能包括:

  • 多项性能改进:编译速度比之前的版本提高了 9 倍。

  • 可插拔的架构:支持多种编译器和编译引擎。Wasmer 不仅对SinglepassCraneliftLLVM提供开箱即可用的支持,而且支持 JIT 引擎和原生引擎两种编译模式。JIT 引擎将生成代码直接推送到内存,原生引擎在磁盘上生成原生代码。

  • 原生对象引擎:Wasm 模块可预编译为原生对象。原生对象在提供完全沙箱环境的同时,通过编译的模块仅需要最小运行时即可运行。

  • 无头(headless)Wasmer:用户可运行一种专门针对轻量级 IoT 设备的“无头”版 Wasmer。无头版仅有几百 KB 大小,支持在任一设备上运行预编译的 Wasm 二进制文件。

  • 交叉编译:可以在任意 CPU 架构上针对其他的目标 CPU 架构进行 Wasm 的预编译。

 

Wasm 是一种面向基于堆栈(stack-based)虚拟机的二进制指令格式。它的设计目的是能够让不同的编程语言生成可移植的编译目标产出,支持在 Web 客户端和服务器端应用上进行部署。Wasm 已受到 Web 应用开发的广泛关注。开发人员使用 Wasm 替代或补充传统的 JavaScript 代码,并且大多数现代浏览器支持开箱即可用地执行 Wasm。可编译为 Wasm 的编程语言正不断增加,其中包括 C/C++、Rust、C#等。

 

随着 WebAssembly 在浏览器中广泛使用,出现了一些服务器端 Wasm 实现。Wasmer 的 CEO Syrus Akbary 介绍了服务器端 Wasm 运行时的重要性:

 

我们相信,WebAssembly 未来将成为执行软件和容器化的重要组件,不仅在浏览器内部,而且在浏览器之外。

 

通过将 Wasm 引入软件容器化,我们创建了无需修改即可随处运行的通用二进制文件,支持 Linux、MacOS、Windows 等操作系统,以及多种浏览器。出于执行安全上的考虑,Wasm 默认自动化沙箱应用,保护主机环境免受恶意代码、软件缺陷和所运行软件的安全漏洞的威胁。Wasm 还提供了紧凑的执行环境,使得 Wasmer 容器可在使用 Docker 容器显得过于重量级的场景中运行。


Wasm 服务器端运行时实现了WebAssembly System Interface(WASI)。WASI 是 WebAssembly 的模块化系统接口,支持 Wasm 代码访问文件系统、网络等操作系统的特定服务,这通常在浏览器中是不允许的。Docker 的联合创始人 Solomon Hykes 曾于2019年发推文指出:


如果早在 2008 年就推出了 WASM+WASI,那么我们就没有必要创立 Docker。Wasm 就是这么重要。服务器端 WebAssembly 是计算的未来,虽然还缺少标准化的系统接口。期待 WASI 提上日程!


Wasmer 使用Rust编写,是一个流行的 Wasm 服务器端运行时的开源实现。做为 Wasmer 的支撑企业,Wasmer Inc 还推出了WebAssembly软件包管理器WAPM。使用 WAPM,开发人员可以轻松地分享 Wasm 代码的打包模块。Wasmer 运行时的同类产品还包括 SSVM(Second State Virtual Machine)和Lucet

 

原文链接: 

The "Wasmer" WebAssembly Runtime is Generally Available

2021-02-03 15:574587

评论

发布
暂无评论
发现更多内容

【解构系统设计面试】什么是系统设计?以及如何设计一个新鲜事系统?

罗远航

系统设计

第八周总结

LEAF

JVM详解之:HotSpot VM中的Intrinsic methods

程序那些事

Java JVM GC

Java SSM 框架常见面试题

老大哥

Java

揭秘淘宝平台广告策略,拆解最佳投放实践

华为云开发者联盟

数据分析 广告 用户增长 淘宝 电商

百万并发「零拷贝」技术系列之经典案例Netty

码农神说

Java Netty 零拷贝

判了!中科大博士写游戏外挂赚了12万获刑,被抓才知道帮团队赚了300万……

程序员生活志

游戏开发 游戏 游戏外挂 新闻

新三板专家-程晓明:四板将是推动区块链技术与资本市场结合试验田

CECBC

区块链技术 推进落地应用

BFC "苦"前端久矣!

coolion

CSS 大前端

Developer 转型记:一个开发平台的“魔力”

华为云开发者联盟

华为 AI 开发者 开发者工具 华为云

知识点梳理:聊聊iOS SDK数据采集那点事儿

易观大数据

架构师培训 -08总结 数据结构算法,网络通信协议,非阻塞网络 I/O,数据库原理

刘敏

Java中的模板设计模式,太实用了!

BUZHIDAO

Java

架构师训练营week08 学习总结

GunShotPanda

判断两个链表是否合并

Acker飏

第八周总结

Acker飏

使用Spring Validation优雅地校验参数

Java课代表

springboot

MySQL的索引基础知识

guoguo 👻

架构师训练营week08 作业

GunShotPanda

面试官问:僵尸进程和孤儿进程有了解过吗

Java小咖秀

Linux 学习 面试 进程 经验

视频丨包不同的沙雕敏捷之砸锅卖铁买兰博

华为云开发者联盟

程序员 运维 敏捷 敏捷开发 技术人

该学一学了!零基础入门Docker

程序员的时光

Docker

轻量级BI应用-Superset实践

Jackchang234987

BI 数据产品

信创舆情一线--50多家科技公司源代码泄露

统小信uos

区块链+国防安全,科技是核心战斗力

CECBC

新技术 国防安全 科技信息

要都练基本功

架构师

架构师训练营第8周学习总结

TH

一图看懂华为云DevCloud如何应对敏捷开发的测试挑战

华为云开发者联盟

微服务 敏捷开发 测试 云服务 华为云

2行代码搞定一个定时器!

简爱W

一次线上JVM Young GC调优,搞懂了这么多东西!

南方有乔木兮

求组队,PK华为HMS全球应用创新大赛!

InfoQ_e92167c73263

android

Wasmer发布GA版本的WebAssembly运行时_大前端_Eran Stiller_InfoQ精选文章