APP下载

强化WebAssembly与Javascript互通性,Rust向网页语言再进一步

2018-03-19 19:32

图片来源: 

Lin Clark

Mozilla强化了WebAssembly与Javascript的互通性,不只简化之间传值的程序,还简化了将其打包成NPM套件的工作,并让Javascript可以更直觉的使用WebAssembly套件功能。

2018年Rust社群就是想让Rust成为网页语言,而Rust是个系统开发语言,因此在网页应用程序上,需要先把Rust编译为WebAssembly,因此他们透过改进WebAssembly,来让Rust能像Javasacript执行的一样好,而开发人员也能够像Javasacript一样使用WebAssembly。

强化Rust与Javascript的互通性,让Rust可以融入Javascript生态系中,与其说要强化Rust与Javascript的互通性,倒不如说强化的是WebAssembly与Javascript的互通性,与此同时也嘉惠了C/C++这类可以编译为WebAssembly的语言与Javascript的互通性。

Rust社群目标要让Javascript与Rust能够互相呼叫函数,Rust也可以呼叫主机的函数,而Rust函式库(Crate)能够依赖NPM套件,Javascript与Rust也都能使用直觉的方式传递物件。(来源:Mozilla)

而第一个要解决便是WebAssembly与Javascript互相传递物件的问题,这是最困难的部分之一,因为目前WebAssembly只支援整数以及浮点数两种型态,因此光是Javascript要传送字串给WebAssembly函数,就够开发者忙的了。

开发者需要将英文字母编码成数字代码,再将第一个字母的索引传递给WebAssembly端,WebAssembly再由索引取得数字后对应回字母。传递字串就如此大费功夫,就别论传递其他更复杂的物件了。

而Mozilla为这个复杂的过程制作了一个黑盒子,开发者不再需要理解传递物件的逻辑。只要在Rust程式码中添加一些注释,Wasm-bindgen便能自动建立WebAssembly与Javascript两端需要的程式码。而且基于Wasm-bindgen语言独立特性,未来也能在其他语言,诸如C/C++中使用。

使用Wasm-bindgen功能会产生一些档案,而这些档案需要被打包成一个NPM套件,并由Package.json描述相依性。Mozilla为此打造了一站式打包功能,帮开发者把WebAssembly档案编译为NPM套件。(来源:Mozilla)

该功能会为使用者先执行Wasm-bindgen,接着把产生的档案打包一起,从Rust程式码中产生Package.json详述相依性,而使用者需要做的就只是发布NPM套件。

把WebAssembly打包成NPM后,下一步就是要让Javascript能够取用。Mozilla开发者关系团队工程师Lin Clark表示,这是一件苦差事,从提取文件到准备相依性,每一个步骤都必须撰写程式码来完成,而现在新提供的ES模组就能完成这件事,目标让使用WebAssembly模组就跟导入一样简单。不过,这件功能目前还不够完善,Mozilla正与TC39及WebAssembly社群规划标准化事宜。

Rust距离成为网页语言还有一段路,首要工作就是能与Javascript生态系有良好的协作,但Lin Clark表示,Mozilla并没有想要让Rust取代Javascript,只不过有一些工作的确比较适合用Rust来进行,像是解析地图或是找出DOM的改变等。

相关文章

最新资讯

  • 全家科技二号店亮相! 自助结账、5G、智贩机登场
    2019-10-22 18:53
  • 【本土文化】80 后女化妆师驾雪糕车手圆梦 蚀本也坚持:太多童年回忆!
    2019-10-22 18:52
  • 双十一的进化与苏宁的场景零售升维
    2019-10-22 17:56
  • 环保和农业再发力 平安科技AI技术中台助力场景…
    2019-10-22 17:53
  • 维修连锁企业用侵权零件修华为手机:涉案金额3…
    2019-10-22 16:53

手机

  • realme 三款高 CP 值新机登场 颈挂耳机、手机壳同步登台
    2019-10-22 16:50
  • Pixel 4被抱怨影片录制仅支援4K、30fps规格 Google表示画质和储存空间更重要
    2019-10-22 09:49
  • 联手 Yahoo / Verizon Media 中华电信宣示发展 5G 影音娱乐内容
    2019-10-22 07:48
  • Pixel 4都不能免费以原图储存在Google相簿上 为什么 iPhone 竟可以免费?Google表示:是Bug
    2019-10-21 16:48
  • HTC推出平价版 EXODUS 1s区块链手机 价格新台币5,990 元
    2019-10-21 15:47

数码

  • 选购大火力灶看热负荷更要看热效率!安利华帝…
    2019-10-22 17:59
  • 最适合父母的洗碗机!操作难倒老年人? 硬核华…
    2019-10-22 17:59
  • 耳边的AI助理,出门问问发布TicPods 2系列头控…
    2019-10-22 18:02
  • 硬核知识科普:色域究竟是什么东西?
    2019-10-22 18:02
  • 一加7T系列首销战况出炉 斩获双料冠军
    2019-10-22 17:00

科技

  • 车好多集团入围2018年度中国十大独角兽排行榜
    2018-07-23 12:33
  • 史前短面熊有多可怕?站立高度近5米 曾称霸整个美洲地区
    2018-07-23 12:33
  • 罕见的活化石生物 能在陆地呼吸的鱼 恐龙见到它也要叫声爷
    2018-07-23 12:33
  • BCH代币化方案讨论大爆发 你的观点是什么?
    2018-07-23 12:33
  • 口碑重塑商业模式侵袭美团主业
    2018-07-23 13:31