写点什么

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:574630

评论

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

关于 eBPF 安全可观测性,你需要知道的那些事儿

OpenAnolis小助手

Linux 开源 内核 ebpf 龙蜥技术

Qt|自定义Widget实现互斥效果问题

中国好公民st

qt QWidget 9月月更

ChaosBlade Java 场景性能优化,那些你不知道的事

Java快了!

java;

javaweb-JSP

喜羊羊

9月月更

【活动预告】数据集成海外专场Meetup:走进Shopee,聊透SeaTunnel优化实践

Apache SeaTunnel

技术分享 数据同步 数据集成 社区活动

库调多了,都忘了最基础的概念 <锁与线程篇1>

知识浅谈

线程 9月月更

数据治理(十一):数据安全管理Ranger初步认识

Lansonli

数据治理 9月月更

云数据库技术|“重磅升级”后再测TDSQL-C

数据库 polarDB 玖章算术 TDSQL-C

如何让开发者直接在应用后台控制用户的运动状态?

HarmonyOS SDK

面试突击:什么是跨域问题?如何解决?

Java快了!

java;

Hi3861 通过UART串口协议与其它开发板进行通信

OpenHarmony开发者

OpenHarmony

Java 多线程:基础

Java快了!

java;

4天带你上手HarmonyOS ArkUI开发

HarmonyOS开发者

HarmonyOS

客户案例|宜泊科技怎样实现智慧停车可观测

观测云

降本:云原生可观测性新定义

观测云

Authing 郑凌:我眼中的 Authing

Authing

讲究卡路里多少的美食出圈了!维小饭被评为“2022中国轻食十大品牌”

联营汇聚

调用 sap.ui.base.ManagedObject 的构造函数时,如何传递绑定路径进去

汪子熙

JavaScript SAP SAP UI5 ui5 9月月更

JavaWeb -JavaBean MVC Filter 监听器 过滤器

喜羊羊

9月月更

中秋节,华为云AI送上超级大月亮制作教程,体验赢开发者键鼠套装

华为云开发者联盟

人工智能 华为云 中秋节 企业号九月金秋榜

下一代 SCA:流水线成分分析

SEAL安全

DevSecOps SCA 软件成分分析 软件组成分析 软件供应链安全

需求变更,敏捷项目应如何做?

敏捷开发

Scrum 敏捷 需求管理 需求 Scrum团队

数据科学家、数据工程师和数据分析师三个角色的区别是什么

雨果

数据分析师 数据科学 数据工程师

这份数据安全自查checklist请拿好,帮你补齐安全短板的妙招全在里面!

京东科技开发者

数据库 安全 数据安全 云安全 京东云

TDengine支持多种写入协议,四种写入方式提效大全

TDengine

tdengine 开源 时序数据库 企业号九月金秋榜

为什么越来越多博士逃离科研?

博文视点Broadview

构建运维监控体系设计思路概述

穿过生命散发芬芳

监控体系 9月月更

阿里开源的升级思考:开源委员会的三个关键行动点

阿里技术

开源

JavaScript 基础知识

喜羊羊

9月月更

Sprint Review能不能做成Demo演示?

LigaAI

Scrum 敏捷开发 迭代增量开发 高效办公 企业号九月金秋榜

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