WebAssembly:标准化接口

时间:2018-08-10 00:30:42

标签: protocols webassembly

WebAssembly与外部世界交互的方式非常优雅且安全。添加功能界面很容易,但尚不标准化。

是否已经针对Javascript环境(主要用于访问浏览器中的DOM或Node中的文件系统)建立了调用约定?

1 个答案:

答案 0 :(得分:1)

尚未创建用于操纵DOM节点或使用外部API的约定,但是一些WebAssembly提议/将来的功能将对此提供支持。

第一个是the reference types proposal,它允许扩展类型系统,添加一个新的anyref类型,该类型允许模块保存对主机环境提供的对象的引用,即,可以将JS对象传递给您的wasm模块。

第二个是host bindings提案,该提案允许WebAssembly模块创建,传递,调用和操纵JavaScript / DOM对象。它添加了一个数字主机绑定部分,其中包括说明应该构造的绑定机制/接口的批注。

Rust已拥有一个工具wasm-bindgen,该工具的用途非常相似,并且与该建议非常一致。使用wasm-bindgen,您可以轻松地将对象(例如字符串)跨过wasm / JS边界传递。该工具将绑定元数据添加到wasm模块,并生成所需的JS粘合代码。