关于 wasm
这是一份 WebAssembly 开发参考,涵盖编译、WASI、Component Model 和运行时,面向评估或构建浏览器、边缘、服务器及嵌入式 WASM 应用的开发者。
主要功能
- 01Rust、Go、C/C++ 和 AssemblyScript 编译
- 02WASI 命令与运行时示例
- 03类型化 Component Model 组合
- 04浏览器、边缘、服务器及嵌入式场景
适用场景
- 01编译 Rust 代码供浏览器使用
- 02使用 Wasmtime 运行 WASI 应用
- 03跨语言组合类型化模块
- 04评估 WASM 在边缘或嵌入式环境的用途
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thebeardedbearsas/ claude-craft --skill wasm安装后在 Claude Code 中输入/wasm确认已加载。
详细介绍
WebAssembly(WASM)——组件模型、WASI
适用于性能关键型场景、多语言运行时和边缘计算的 WASM。
使用场景
浏览器——加密、图像(Figma、Google Earth)
边缘——Cloudflare Workers、Fastly
服务端——沙盒化插件(Envoy)
嵌入式——物联网、汽车
编译
Rust——wasm-pack(约 50KB,性能高)
Go——GOOS=js GOARCH=wasm(约 2MB)
C/C++——Emscripten(旧版)
AssemblyScript——类似 TypeScript
Rust 到 WASM
use wasm_bindgen::prelude::*;
#[wasm_bindgen] pub fn add(a: i32, b: i32) -> i32 { a + b }
wasm-pack build --target web
import init, { add } from './pkg/wasm.js';
await init(); add(2, 3);
WASI(系统接口)
rustc --target wasm32-wasi main.rs -o app.wasm
wasmtime app.wasm
组件模型
interface math { add: func(a: s32, b: s32) -> s32 }
组合类型化的 Rust/Go/C++ 模块。
边缘(Cloudflare)
import wasm from './processor.wasm';
export default {
async fetch(req) {
const inst = await WebAssembly.instantiate(wasm);
return new Response(inst.exports.process(req.body));
}
};
运行时
Wasmtime——快速,支持 WASI
Wasmer——通用
WasmEdge——边缘、K8s
请参阅 @.claude/skills/edge-computing/SKILL.md
评论
支持 Markdown