WebAssembly简述

最近在看前端技术类的书,看到WebAssembly,感觉挺有意思的。于是做个简单的记录,为以后可能会碰到的技术瓶颈,打下一个知识储备

线路如下:5W2H

Why(为什么)

What(是什么)

Where(在何处)

When(在何时)

Who(由谁做)

How(怎么做)

How Much(要多少)

WebAssembly诞生的原因?

简单来讲就是,受到javascript语言本身的限制,导致性能瓶颈。如果其他语言如c/c++代码,如果能够在web上使用,能缩短一些成熟软件的开发时间,并且某些模块的性能可以得到极大的提升

WebAssembly是什么?

WebAssembly是新一代Web虚拟机标准,可以让用各种语言编写的代码都能以接近原生的速度在Web中运行。

  • 比如,C/C代码可以通过Emscripten工具链编译为wasm二进制文件,进而导入网页中供JavaScript调用。这意味着使用C/C编写的程序可以直接在网页中运行,而Rust语言更是内置了对WebAssembly的支持。

在什么场景下用WebAssembly?

想要用包括 C和C++ 这些编程语言实现的优秀软件或功能模块

  • 如游戏引擎Unity、Unreal,设计软件AutoCAD等

    • 如果使用JavaScript开发在功能上与这些软件旗鼓相当的产品可能需要很多年时间。但如果将它们编译成WebAssembly,这些原生应用就可以直接运行在Web平台上。因此,Web能够与原生平台相提并论。


    WebAssembly让Web应用能够与原生应用展开竞争。

谁适合用WebAssembly?

以C/C++/Rust为主力开发语言,并且希望介入前端领域的开发者

希望借助高性能的C/C++/Rust库解决前端性能问题的JavaScript开发者

如何使用WebAssembly?

待补充,哈哈…


如有误,可留言