最近想做一个前端加密算法的小项目,直接暴露在前台页面中太不安全,所有各种查询将算法封装到wasm中能起到隔离的效果,但是默认采用C语言或者Rust语言完成的要求门槛比较高。试了好几次 不是网络连不上下载不到支持包就是版本不匹配。
使用 AssemblyScript:
📌 简介:
AssemblyScript 是一个基于 TypeScript 子集 的语言,专门用于编译成 WebAssembly(WASM) 。它语法接近 JS/TS,非常适合前端开发者上手。
🧰 步骤:从 JS 风格代码生成 WASM
1. 安装 AssemblyScript 编译器
npm install --save-dev assemblyscript
2. 初始化项目
npx asinit .
这会创建以下结构:
.
├── asconfig.json // AssemblyScript 配置文件
├── assembly // 放 .ts 文件
│ └── index.ts // 主模块
├── build // 编译输出目录(包含 .wasm)
└── ...
3. 编写 JS 风格的 TypeScript 代码(assembly/index.ts
)
// assembly/index.ts
export function add(a: i32, b: i32): i32 {
return a + b;
}
这个函数是标准的 TypeScript,但会被编译为 WASM。
4. 编译生成 .wasm
文件
npm run asbuild
编译后会在 build/release.wasm
中生成 WASM 文件。