📚《C/C++面向WebAssembly编程》——Emscripten工程实践
Switch branches/tags
Nothing to show
Clone or download
Latest commit 1a63187 Dec 12, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ch0-intro 修复gitbook问题 Sep 26, 2018
ch1-quick-guide asm.js使用代码体 Oct 25, 2018
ch2-c-js zz Oct 19, 2018
ch3-runtime ch3.6 done Oct 29, 2018
ch4-techniques zz Dec 12, 2018
ch5-net ch5.1 done Dec 12, 2018
examples ch5.1 done Dec 12, 2018
.bookignore 修复gitbook问题 Sep 26, 2018
.editorconfig 添加Makefile和配置文件 Sep 26, 2018
.gitattributes zz Nov 2, 2018
.gitignore 添加Makefile和配置文件 Sep 26, 2018
Makefile 更新在线预览链接 Sep 29, 2018
README.md zz Dec 12, 2018
SUMMARY.md ch5.1 done Dec 12, 2018
book.json 更新gitbook标题 Nov 4, 2018
cover.jpg zz Nov 6, 2018
cover.png zz Nov 6, 2018
cover_small.jpg zz Nov 6, 2018
favicon.ico add favicon.ico Sep 28, 2018
preface.md 调整 preface 排版 Nov 4, 2018
server.go 添加Makefile和配置文件 Sep 26, 2018
weixin-wasm-hackers.jpg 完善 readme Sep 26, 2018

README.md

C/C++面向WebAssembly编程

本书介绍了在工程化应用中使用C/C++进行WebAssembly开发的方法。关于WebAssembly的基础知识可以参考《WebAssembly标准入门》,发售地址:


前言

Ending's law: "Any application that can be compiled to WebAssembly, will be compiled to WebAssembly eventually."

WebAssembly是新一代的Web虚拟机标准,C/C++程序可以通过Emscripten工具链编译为WebAssembly二进制格式.wasm,进而导入网页中供JavaScript调用——这意味着使用C/C++编写的程序将可以直接运行在网页中。

本书从Emscripten基本使用开始介绍了C/C++开发WebAssembly模块的方法;并且以作者在实际工程项目中获取的一手经验为基础,提出了一些一般性的设计原则和技术框架。

笔者认为,一个理想的面向Web的C/C++工程应该对编译目标不敏感——既可以被编译为NativeCode直接运行,也可以被编译为WebAssembly在网页中运行,二者的切换只需要更改运行环境设置,如此方可充分利用现有IDE环境强大的开发、调试、分析、测试等功能,提高工程质量、降低开发成本。

但WebAssembly的运行环境毕竟与本地环境有着巨大的差异,因此为了达到上述理想目标,从整体框架到接口设计甚至到函数间的数据交换层面都必须充分考虑Web环境的特点(或者说限制),而这正是本书所贯彻的“WebAssembly友好”的内涵所在。

在线阅读

参考资料

关注微信公众号 (wasm-hackers) 或 QQ群 (726475047)


当前进度


版权声明

自有版权,转载请联系作者。