本文要点
- Deno和Node.js都在基于C/C++的运行时上执行JavaScript代码,以实现较高的性能。
- Deno是单一的二进制应用,不兼容NPM模块,并且很难将原生模块加入应用中。
- WebAssembly提供了一种在Deno应用中运行高性能代码的途径。
- 对于服务端应用程序来说,WebAssembly是安全、可移植和轻量级的容器。
- Rust编译器工具链为WebAssembly提供了强大的支持。
备受期待的Deno项目终于发布了1.0版本!Deno是由Node.js的创始人Ryan Dahl创建的,旨在解决他所说的“我为Node.js感到遗憾的十件事”。
Deno抛弃了NPM和臭名昭著的node_modules。它是单个二进制可执行文件,可运行以TypeScript和JavaScript编写的应用程序。
但是,尽管TypeScript和JavaScript适合大多数Web应用程序,但它们可能难以满足计算密集型任务的需求,如神经网络训练和推理、机器学习和加密应用等。实际上,Node.js就经常需要使用原生库来执行这些任务(例如使用openssl执行加密任务)。
既然没有类似NPM的系统来加入原生模块的话,我们该怎样在Deno上编写需要原生性能的服务端应用程序呢?这就要轮到WebAssembly上场了!在这篇文章中,我们将在Rust中编写一些高性能函数,并将它们编译为WebAssembly,然后在你的Deno应用程序中运行它们。
原文链接:【https://www.infoq.cn/article/bkXMMfMruVPC8MjAODIR】。未经作者许可,禁止转载。