WebAssembly-driven 01

WebAssembly-driven

发展历程

主要目的

  • 可移植
  • 快速
  • 安全

为不同的运行环境重复编写代码带来了大量的重复工作,应当提高已有代码的重用效率,实现同一份代码在不同运行环境的快速部署。尤其是当今开源软件的价值主张越发清楚,快速、安全地将他人编写的有价值的、可重复使用的代码化为己用越发重要。

以往的解决办法

直至今日,Java一直是其中一些问题的解决方案,它几乎无处不在,并且是可移植的。但是,一旦离开了基于浏览器的保护范围,仍然存在安全问题。
并且,单线程设计不利于长期运行或高并发度任务。
此外,增加Java的依赖性十分容易,当一个依赖包被修改或删除时,可能会扰乱大量的部署软件。

简介

WebAssembly是一种低级语言,一开始是为了给Web提供近似本地的表现。它使用基于栈的执行模型,运行在一个虚拟机上。WebAssembly binaries也被叫做模块,可以通过二进制或者文本的方式表示。这样可以将像是C、C++、Rust、C#、Go和AssemblyScript这些语言通过Emscripten之类的编译器编译到WebAssembly。然后这些模块可以被import到JS或者其他宿主环境中并实例化,并且每个模块都在单独的互相隔离的上下文中运行,拥有独立的内存二和运行栈。
WebAssembly目标是构造一种新的标准,使其能够比JavaScript更加安全、快速和方便地将代码部署到web端。并且它可以将用C,C++和Rust这种更高级的语言编写的程序交叉编译并运行在web端。但是WebAssembly不仅仅局限于web端,它可以被用在很多主机环境中,比如,它可以通过WebAssembly的接口将C应用移植并像普通的桌面应用那样运行。
但是目前WebAssembly还不像其他本地编译器那样成熟,所以一些特定的代码可能会在这些平台上表现出不同的行为,从而导致在将程序移植到WebAssembly的过程中产生一些潜在的bug,并且可能会引发安全问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值