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的改变等。

相关文章

最新资讯

  • 台湾2千万笔户政资料暗网兜售?行政院资安处:非户政资料,多方旧数据库整并
    2020-05-31 12:47
  • 为新而生,探索世界更多可能!京东小魔方超燃…
    2020-05-31 11:52
  • 白凯南现场大吃煎牛肉 大中电器直播带货引围观
    2020-05-31 10:51
  • Nutanix扩大与ServiceNow集成,助力企业优化IT…
    2020-05-29 14:50
  • 口罩完美配搭,印度新娘婚摄零违和感!
    2020-05-31 10:47

手机

  • LG 双屏幕手机 V60 ThinQ 5G 登台 双大屏幕、大电量、售价 33,900 元
    2020-05-29 15:45
  • 我的手机暴走了 初号机联名款 OPPO Ace 2 中国登场 卡针完美还原朗基努斯之枪
    2020-05-29 10:45
  • vivo Y50 / Y15 在台上市 主打前后共五镜头、5,000mAh 大电池
    2020-05-28 16:46
  • 华为两款手表登台:HUAWEI WATCH GT 2e、HUAWEI Band 4 Pro 平价开卖
    2020-05-27 14:45
  • 传三星 Galaxy Note 20 可能长这样 超显眼主镜头模组、更大的屏幕
    2020-05-26 16:45

数码

  • 这或许是你能最低价购入iQOO Z1的时候! 618期…
    2020-05-31 11:53
  • 5月31日,阿尔法蛋与雪梨和沈梦辰亲密互动
    2020-05-31 11:53
  • 双面镜彩面面俱到 细数小辣椒6手机卖点
    2019-02-24 09:47
  • 百度影棒荣获“2014年度最受喜爱电视盒子第一…
    2019-02-24 09:47
  • 追剧别用液晶 智能投影让孩子眼睛更舒适
    2020-05-31 09:52

科技

  • 绝对是目前手感最好的键帽 而且自带温感变色
    2018-06-07 13:32
  • 比MacBook还先用上Intel8代CPU 这台灵耀X长什么样?
    2018-06-07 13:32
  • 富士康三十周岁庆郭台铭吐槽虚拟经济:不想和李开复吵起来
    2018-06-07 13:32
  • 销售回温 宏达电5月营收月增16%
    2018-06-07 13:32
  • 六一送给孩子的祝福语简短 家长老师送给小朋友的6.1寄语
    2020-05-31 10:46