什么,我竟然通过Node.js调用rust

2,621 阅读1分钟

demo

demo from ami

怎么实现

通过使用 rust 编写 wasm,然后由 Node.js 进行调用。

什么是wasm

WebAssembly 或称 wasm 是一个实验性的低级编程语言,应用于浏览器内的客户端。 WebAssembly 是便携式的抽象语法树,被设计来提供比 JavaScript 更快速的编译及运行。例如 Google Earth 使用的浏览器端的 wasm 来优化性能。

wasm 不仅可以在浏览器端运行,也可以在服务器端运行。通过接近原生代码的能力来提供高性能,在 AI、大数据、图片流,视频流处理、科学计算等领域都有很大的前景。相比于原生代码,拥有了轻量,跨平台等优秀特性;相比于纯 JavaScript,拥有了极大的性能提升。

起源

前几天在 rustcc 看到了一篇学rust免费拿树莓派的博文,只要在 2020.08.31 之前创建并发布一个 Node.js 程序就可以免费拿树莓派。

尝试

于是我为了学习 rust(免费的树莓派),编写了一个数学计算的程序。

查看源代码看这里(github)

为了方便,我就直接把前端后端都直接写在一起了,服务器使用 Node.js 的 express。具体的实现欢迎大家来看代码。然后 rust 我的功力不是很强(没有怎么写代码),所以写出来就很不优雅,如果有好的解决方案可以提 issue 一起讨论丫。