强曰为道
与天地相似,故不违。知周乎万物,而道济天下,故不过。旁行而不流,乐天知命,故不忧.
文档目录

WebAssembly 入门教程

WebAssembly 入门教程

WebAssembly(Wasm) 是一种可移植、体积小、加载快的二进制指令格式,被设计为 C/C++/Rust 等语言的编译目标,可在 Web 浏览器、服务器端、边缘节点等多种环境中高效运行。


教程概览

本教程共 15 章,从基础概念到生产实践,系统性地覆盖 WebAssembly 生态的核心知识:

章节 主题 关键词
01 WebAssembly 概述 设计目标、与 JS 对比、适用场景、历史
02 安装与工具链 Emscripten、Wasmtime、wasm-pack、AssemblyScript、WASI SDK
03 基础概念 WAT、二进制格式、模块、内存、表、实例化
04 WAT 文本格式 语法、指令、控制流、函数、内存操作、数值运算
05 C/C++ 编译到 Wasm Emscripten、绑定、内存管理、EM_JS、优化
06 Rust 编译到 Wasm wasm-bindgen、wasm-pack、类型映射、WASI
07 AssemblyScript 类型系统、函数、内存、与 TypeScript 差异
08 JavaScript 集成 加载、编译、调用、内存共享、Worker
09 WASI 系统接口 文件系统、环境变量、时钟、随机数、权限
10 浏览器应用 Web Workers、共享内存、Canvas、WebGL
11 边缘计算 Cloudflare Workers、Fastly Compute、WasmEdge、IoT
12 插件系统 扩展机制、宿主函数、动态加载、隔离、热更新
13 Docker 与容器 Wasm 运行时、容器集成、K8s、WasmCloud
14 性能与优化 体积、启动时间、AOT/JIT、SIMD、内存管理
15 最佳实践 选型指南、安全、调试、测试、生产部署

适合谁读?

  • 前端开发者:希望在浏览器中运行高性能模块(图像处理、加密、游戏引擎等)
  • 后端开发者:想在服务端使用 Wasm 实现插件系统、边缘计算、轻量容器
  • 系统程序员:关注跨平台编译、安全沙箱、高性能执行
  • 架构师:评估 Wasm 在微服务、Serverless、IoT 中的应用前景

学习路径建议

┌─────────────────────────────────────────────────┐
│  第一阶段:理解基础                               │
│  01 概述 → 02 工具链 → 03 基础概念 → 04 WAT     │
└────────────────────┬────────────────────────────┘
                     │
┌────────────────────▼────────────────────────────┐
│  第二阶段:语言实战                               │
│  05 C/C++ → 06 Rust → 07 AssemblyScript         │
└────────────────────┬────────────────────────────┘
                     │
┌────────────────────▼────────────────────────────┐
│  第三阶段:运行环境                               │
│  08 JS 集成 → 09 WASI → 10 浏览器               │
└────────────────────┬────────────────────────────┘
                     │
┌────────────────────▼────────────────────────────┐
│  第四阶段:高级应用                               │
│  11 边缘计算 → 12 插件系统 → 13 Docker          │
└────────────────────┬────────────────────────────┘
                     │
┌────────────────────▼────────────────────────────┐
│  第五阶段:工程实践                               │
│  14 性能优化 → 15 最佳实践                        │
└─────────────────────────────────────────────────┘

环境要求

在开始之前,请确保你的开发环境满足以下条件:

工具 最低版本 用途
Git 2.x 版本控制
Node.js 18+ JavaScript 运行时
Rust/Cargo 1.70+ Rust 工具链(可选)
CMake 3.20+ C/C++ 构建(可选)
Docker 24+ 容器实验(可选)

目录