缘由
Js的坑:
代码体积越来越大 (大型项目中存在)webpack、uglify等,原理上:压缩上限有限。
越来越长的起步及运行时时间。
没有静态类型。(typescript基本已经解决)
与asm.js类型,可以做到可移植。
语法上脱离JavaScript。
沙盒话的执行环境。
执行起步有本质区别,没有parse,实质上是个decode的过程。
适合webassembly的场景
- 对性能有很高要求的场景
- 在web上利用C/C++/Rust的库
- 需要独立的沙盒环境
- 需要在不同平台运行
产品:
- PSPDKit for Web
- Webpack Core
- AutoCad
- Googl Earth
- Ethereum runtime
- 。。。
工具
emscripten 编译器
WABT 转换器
Webpack support 现已经可以直接引用了
AssemblyScript 把TypeScript编译成Assembly的编译器
https://github.com/AssemblyScript/assemblyscript
Blazor / Mono 运行.net的程序
https://github.com/aspnet/Blazor
tip
webassemble 暂时没法很好支持,带GC的语言的编译。