目前 Mozilla 正在基于 webAssembly 可移植代码格式研发 JavaScript 和 Rust 之间的桥梁 --wasm-bindgen, 意义是提高 JavaScript 和 Rust 之间的互操作性.
目前 Mozilla 正在基于 WebAssembly 可移植代码格式研发 JavaScript 和 Rust 之间的桥梁 --wasm-bindgen, 意义是提高 JavaScript 和 Rust 之间的互操作性. Mozilla 这么做是想让 Rust 成为类似 JavaScript 的 Web 语言, 让它能够与 Web 应用中的 WebAssembly 和 JavaScript 一起使用.
Wasm-bindgen 提供 WebAssembly(wasm) 模块和 JavaScript 之间的高级别交互. 使用 wasm-bindgen,JavaScript 和 WebAssembly 之前不仅可以通过整形和浮点型进行通信, 还可以使用字符串, JavaScript 对象和类进行.
wasm-bindgen 的高级功能包括:
导入 JavaScript 结构, 函数和对象以在 WebAssembly 中调用. 开发人员可以调用结构中的方法和访问属性.
将 Rust 结构和函数导出到 JavaScript. 可以导出一个 Rust struct, 它会变成一个 JavaScript class, 之后就可以传递结构而不是整型.
目前, WebAssembly 仅支持四种类型: 两种整型和两种浮点型. 但 JavaScript 和 Rust 开发人员经常使用更丰富的类型, 例如 Rust 开发人员使用 Result 类型进行错误处理, 这样, 使用 wasm-bindgen 的时候, JavaScript 可以使用字符串或 Rust 函数调用 Rust API 来捕获 JavaScript 异常. 通过消除 WebAssembly 和 JavaScript 之间的不匹配问题, JavaScript 可以调用 WebAssembly 函数, 而反过来, WebAssembly 可以也对 JavaScript 函数执行相同的操作.
基于 ECMAScript 模块, wasm-bindgen 专注于 Rust, 但其目的也是最终用于 C 和 C ++ 等语言. 但 Mozilla 称 wasm-bindgen 目前还不够稳定, 暂时还无法扩展到其它语言.
Rust 社区的一大目标是让 Rust 成为 Web 语言. 通过对标 WebAssembly,Rust 可以像 JavaScript 一样成为一种可以在网络上运行的语言. 但 Mozilla 指出, 它并没有试图用 Rust 取代 JavaScript. 它不希望 Rust WebAssembly 应用程序完全用 Rust 编写, 相反, 大部分应用程序代码仍然使用 JavaScript.Rust 和 WebAssembly 将分别用于应用程序的特定部分, 例如解析源映射或确定对 DOM 做了哪些更改.
JavaScript 最受行业雇主青睐, 2018 年要入前端的坑吗?
身份证号码的正则表达式及验证详解(JavaScript,Regex)
用 JavaScript 编写 MPEG1 解码器
每个 JavaScript 工程师都要知道的 10 个面试题
JavaScript: 面试频繁出现的几个易错点
来源: http://developer.51cto.com/art/201804/570163.htm