Skip to content

nianxy/wasm-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wasm-demo

这个项目主要就来演示如何基于EMScripten来构造Web环境下运行的wasm,并不对WebAssembly做过多解释。

WebAssembly: https://developer.mozilla.org/en-US/docs/WebAssembly EMScripten: https://emscripten.org/

EMScripten输出模式

  1. 输出html,js,wasm3个文件,直接打开html就能加载对应的jswasm代码。一般用于测试吧,生产里没这么用过;
  2. 输出js,wasm两个文件,使用时自己加载jsjs会自动加载wasm;生产中较为常用,但是需要仔细配置构建参数,以便让js和调用代码更好的配合;
  3. 只输出wasm文件,需要自己写js代码进行加载,这种情况一般会在wasm功能非常简单时使用,因为需要自己手写js来加载wasm,没有EMScript生成的很多Glue Code,好处是自己写的js代码会非常小,同时由于wasm中也不需要Glue Code,所以生成的wasm也会更小

实际工作中,使用上述2最多,3有时会用。

运行方法

在项目目录下执行npm install来安装servez,然后通过npm run dev来启动一个HTTP Server。

Demo

  1. 创建并运行一个最简单的wasm
  2. 使用EMScripten生成的js脚本来加载wasm
  3. 将wasm打包到js文件中
  4. 生成ESM格式的js文件
  5. 数据类型和内存管理
  6. Debug
  7. 使用CMake
  8. 使用其它库(未完成)
  9. 导出类
  10. 编译优化

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published