更新时间:2021-01-07 17:16:36
封面
版权信息
前言
第一篇 基础篇
第1章 认识WebAssembly
1.1 WebAssembly的诞生背景
1.2 Web的第4种语言
1.3 本章小结
第2章 Emscripten快速入门
2.1 安装Emscripten
2.2 你好,世界!
2.3 胶水代码初探
2.4 编译目标及编译流程
2.5 示例:放大镜特效
2.6 本章小结
第3章 C与JavaScript互操作
3.1 JavaScript调用C函数
3.2 JavaScript函数注入C环境
3.3 单向透明的内存模型
3.4 JavaScript与C/C++交换数据
3.5 EM_ASM系列宏
3.6 emscripten_run_script()系列函数
3.7 ccall()/cwrap()
3.8 本章小结
第二篇 方法篇
第4章 Emscripten运行时
4.1 main()函数与生命周期
4.2 消息循环
4.3 文件系统
4.4 内存管理
4.5 Module定制
4.6 示例:人脸检测
4.7 本章小结
第5章 WebAssembly友好的一般性方法
5.1 消息循环分离
5.2 内存对齐
5.3 使用C接口导出C++对象
5.4 C++对象生命周期管理
5.5 使用C接口注入JavaScript对象
5.6 小心64位整型数
5.7 文件系统的缺陷
5.8 本章小结
第6章 网络I/O
6.1 XMLHttpRequest
6.2 WebSocket
6.3 本章小结
第7章 并发执行
7.1 JavaScript中的并发模型
7.2 在Worker中使用Emscripten
7.3 pthread线程
7.4 本章小结
第8章 GUI及交互
8.1 Canvas
8.2 鼠标事件
8.3 键盘事件
8.4 Life游戏
8.5 本章小结
第三篇 前沿篇
第9章 Rust和WebAssembly
9.1 Rust入门
9.2 你好,WebAssembly
9.3 导入和导出函数
9.4 打印命令行参数
9.5 no_std
9.6 嵌入C代码
9.7 本章小结
第10章 WASI系统接口
10.1 WASI简介
10.2 探秘WASI工作原理
10.3 WebAssembly虚拟机
10.4 wapm包管理器
10.5 本章小结
附录
附录A WebAssembly接口
A.1 WebAssembly对象
A.2 全局方法
A.3 Module对象
A.4 Instance对象
A.5 Memory对象
A.6 Table对象
附录B 机器指令
B.1 常数指令
B.2 算术运算指令
B.3 位运算指令
B.4 变量访问指令
B.5 内存访问指令
B.6 比较指令
B.7 类型转换指令
B.8 控制流指令
B.9 其他指令