面向WebAssembly编程:应用开发方法与实践 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
面向WebAssembly编程:应用开发方法与实践电子书下载地址
- 文件名
- [epub 下载] 面向WebAssembly编程:应用开发方法与实践 epub格式电子书
- [azw3 下载] 面向WebAssembly编程:应用开发方法与实践 azw3格式电子书
- [pdf 下载] 面向WebAssembly编程:应用开发方法与实践 pdf格式电子书
- [txt 下载] 面向WebAssembly编程:应用开发方法与实践 txt格式电子书
- [mobi 下载] 面向WebAssembly编程:应用开发方法与实践 mobi格式电子书
- [word 下载] 面向WebAssembly编程:应用开发方法与实践 word格式电子书
- [kindle 下载] 面向WebAssembly编程:应用开发方法与实践 kindle格式电子书
寄语:
WebAssembly布道者撰写,详解使用C/C++/Rust开发WebAssembly应用的技术和方法,包含大量案例
内容简介:
内容简介
这是一部讲解如何用高级编程语言开发WebAssembly应用的著作,由国内WebAssembly领域的先驱者和布道者撰写。
全书一共10章,分为三个部分。
第壹部分 基础篇(第1~3章)
首先介绍了WebAssembly的基础和工具链Emscripten的用法,然后详细讲解了使用 C/C++语言和Emscripten开发WebAssembly模块的方法。
第二部分 方法篇(第4~8章)
对 Emscripten 运行时、WebAssembly 友好的一般性方法、网络 I/O、并发执行、GUI 及交互等知识点展开了深入的讨论。
第三部分 前沿篇(第9~10章)
详细讲解了WASI以及如何使用 Rust 语言开发 WebAssembly模块和 WASI 应用。
书籍目录:
前言
篇 基础篇
第1章 认识WebAssembly2
1.1 WebAssembly的诞生背景2
1.2 Web的第4种语言3
1.3 本章小结4
第2章 Emscripten快速入门5
2.1 安装Emscripten5
2.1.1 使用emsdk命令行工具安装Emscripten5
2.1.2 在Docker环境中安装Emscripten7
2.1.3 校验安装8
2.2 你好,世界!8
2.2.1 生成.wasm文件8
2.2.2 运行9
2.2.3 使用Emscripten生成测试页面11
2.3 胶水代码初探12
2.3.1 WebAssembly汇编模块载入12
2.3.2 导出函数封装14
2.3.3 异步加载16
2.4 编译目标及编译流程17
2.4.1 编译目标的选择17
2.4.2 编译流程18
2.5 示例:放大镜特效19
2.5.1 模板程序19
2.5.2 静态的放大镜20
2.5.3 动态的放大镜21
2.6 本章小结24
第3章 C与JavaScript互操作25
3.1 JavaScript调用C函数25
3.1.1 定义函数导出宏25
3.1.2 在JavaScript中调用C导出函数27
3.2 JavaScript函数注入C环境30
3.2.1 C函数声明30
3.2.2 JavaScript实现C函数30
3.2.3 闭包限制及解决办法32
3.2.4 JavaScript函数注入C环境的优缺点33
3.3 单向透明的内存模型33
3.3.1 Module.buffer34
3.3.2 Module.HEAPX34
3.3.3 在JavaScript中访问C/C++环境内存35
3.4 JavaScript与C/C++交换数据37
3.4.1 参数及返回值37
3.4.2 通过内存交换数据39
3.4.3 在JavaScript中分配内存42
3.4.4 字符串43
3.5 EM_ASM系列宏44
3.5.1 EM_ASM44
3.5.2 EM_ASM_/EM_ASM_DOUBLE45
3.5.3 EM_ASM_INT_V/EM_ASM_DOUBLE_V46
3.6 emscripten_run_script()系列函数47
3.6.1 emscripten_run_script()47
3.6.2 emscripten_run_script_int()48
3.6.3 emscripten_run_script_string()49
3.7 ccall()/cwrap()50
3.7.1 ccall()51
3.7.2 cwrap()53
3.7.3 ccall()/cwrap()的潜在风险53
3.8 本章小结56
第二篇 方法篇
第4章 Emscripten运行时58
4.1 main()函数与生命周期58
4.2 消息循环61
4.2.1 emscripten_set_main_loop()61
4.2.2 消息循环的暂停、继续及终止63
4.3 文件系统65
4.3.1 Emscripten虚拟文件系统架构66
4.3.2 基于MEMFS的打包文件系统67
4.3.3 NODEFS文件系统71
4.3.4 IDBFS72
4.4 内存管理73
4.4.1 内存容量/栈容量73
4.4.2 可变内存74
4.4.3 内存分配器75
4.5 Module定制75
4.6 示例:人脸检测78
4.6.1 facedetect_cnn()函数78
4.6.2 facedetect_cnn()函数再封装79
4.6.3 读取图像并检测人脸81
4.6.4 基于SDL显示IplImage图像82
4.7 本章小结84
第5章 WebAssembly友好的一般性方法85
5.1 消息循环分离85
5.1.1 emscripten_set_main_loop()的不足85
5.1.2 在JavaScript中创建定时循环86
5.2 内存对齐88
5.2.1 asm.js88
5.2.2 wasm91
5.2.3 避免及检测未对齐的内存操作92
5.3 使用C接口导出C++对象93
5.4 C++对象生命周期管理97
5.4.1 引用计数97
5.4.2 AddRef()/Release()使用规则98
5.4.3 导出AddRef()/Release()100
5.5 使用C接口注入JavaScript对象103
5.5.1 创建JavaScript对象/ID表103
5.5.2 注入JavaScript对象的生命周期管理104
5.6 小心64位整型数107
5.6.1 WebAssembly原生支持int64108
5.6.2 导出函数包含int64108
5.6.3 注入函数包含int64110
5.7 文件系统的缺陷111
5.8 本章小结112
第6章 网络I/O113
6.1 XMLHttpRequest113
6.1.1 XMLHttpRequest对象使用简介113
6.1.2 XMLHttpRequest对象的C接口封装115
6.1.3 扩展回调处理116
6.2 WebSocket119
6.2.1 创建WebSocket测试服务120
6.2.2 在JavaScript中使用WebSocket121
6.2.3 WebSocket对象的C接口封装122
6.3 本章小结126
第7章 并发执行127
7.1 JavaScript中的并发模型127
7.2 在Worker中使用Emscripten129
7.3 pthread线程132
7.3.1 原子操作132
7.3.2 pthread示例134
7.3.3 在浏览器环境运行pthread示例136
7.4 本章小结137
第8章 GUI及交互138
8.1 Canvas138
8.2 鼠标事件141
8.3 键盘事件144
8.4 Life游戏145
8.4.1 Life简介146
8.4.2 设计要求146
8.4.3 Life游戏C代码146
8.4.4 Life游戏网页代码150
8.4.5 运行Life151
8.5 本章小结152
第三篇 前沿篇
第9章 Rust和WebAssembly154
9.1 Rust入门154
9.1.1 安装Rust开发环境154
9.1.2 你好,世界155
9.1.3 Cargo管理工程155
9.1.4 本地文档156
9.2 你好,WebAssembly157
9.2.1 安装WebAssembly开发环境157
9.2.2 打印“你好,WebAssembly”159
9.3 导入和导出函数159
9.3.1 导出main()函数159
9.3.2 导入宿主打印函数161
9.3.3 导出自定义函数162
9.4 打印命令行参数163
9.4.1 打印字符串163
9.4.2 准备导入env_print_str()函数164
9.4.3 向Rust传入字符串165
9.4.4 命令行参数封装168
9.4.5 传入命令行参数170
9.5 no_std171
9.5.1 输出文件的大小171
9.5.2 通过no_std裁剪标准172
9.5.3 库173
9.6 嵌入C代码174
作者介绍:
丁尔男
WebAssembly技术专家,WebAssembly的先驱者和布道者,率先将WebAssembly技术引入实际工程中,合著有《WebAssembly标准入门》。
长期从事三维地理信息系统软件开发工作,现任武汉航天远景科技股份有限公司应用技术总监,领导开发了3DMatrix系列产品及实景三维应用整体解决方案。
柴树杉
WebAssembly技术专家,WebAssembly的先驱者和布道者,目前就职于蚂蚁集团,从事云原生配置编程语言的设计和研发工作,合著有《WebAssembly标准入门》。
Go语言技术专家,Go语言的贡献者,著有《Go语言高级编程》 。
出版社信息:
暂无出版社相关信息,正在全力查找中!
书籍摘录:
暂无相关书籍摘录,正在全力查找中!
在线阅读/听书/购买/PDF下载地址:
原文赏析:
暂无原文赏析,正在全力查找中!
其它内容:
编辑推荐
1.两位作者均是国内WebAssembly的先驱者、布道者、技术专家,在社区里有较大的影响力。
2.本书讲解了基于C/C++/JavaScript等高级语言开发WebAssembly应用的技术和方法,包含大量案例。
3.本书详细讲解了WebAssembly的关键技术和原理,以及Emscripten和WASI等工具的使用方法。
前言
为什么要写这本书
WebAssembly是新一代Web虚拟机标准,可以让用各种语言编写的代码都能以接近原生的速度在Web中运行。比如,C/C++代码可以通过Emscripten工具链编译为wasm二进制文件,进而导入网页中供JavaScript调用。这意味着使用C/C++编写的程序可以直接在网页中运行,而Rust语言更是内置了对WebAssembly的支持。
作为一种新兴技术,目前WebAssembly的相关技术资料尚不丰富,再加上WebAssembly的开发涉及多种语言和开发环境,导致其工程化门槛较高。作为国内 早的一批WebAssembly开发者,我们非常希望能分享相关知识和方法给读者。
在2018年,借WebAssembly草案1.0发布的契机,我们出版了《WebAssembly标准入门》一书。但《WebAssembly标准入门》重点讨论的是WebAssembly技术本身,花了大量篇幅讲述虚拟机的底层结构、汇编语言、模块的二进制格式等内容,并未过多讨论如何使用高级语言开发WebAssembly应用。因此在2018年年底,我们重新思考了如何用Emscripten编写友好的Web应用这个问题,并形成了本书的前半部分。
2019年年底,机械工业出版社发出约稿,其时WASI技术已经诞生,我们希望能在书中包含WASI以及Rust等新的技术内容, 终打造了本书目前的结构。本书从Emscripten的基本使用开始,介绍了用C/C++开发WebAssembly模块的方法,并且以作者在实际工程项目中获取的一手经验为基础,提出了一些一般性的设计原则和技术框架,同时讨论了如何用Rust语言与C/C++语言混合开发WebAssembly应用。
本书理念
我们认为,一个理想的面向Web的C/C++/Rust工程应该对编译目标不敏感,它既可以被编译为本地代码直接运行,也可以被编译为WebAssembly在网页中运行,切换二者只需要更 行环境,这样便可充分利用现有IDE环境强大的开发、调试、分析、测试等功能,提高工程质量、降低开发成本。但WebAssembly的运行环境毕竟与本地环境有着巨大的差异,因此为了达到上述理想目标,从整体框架到接口设计甚至到函数间的数据交换层面都必须充分考虑Web环境的特点(或者说限制)。这也正是本书所贯彻的“WebAssembly友好”的内涵所在。
读者对象
本书可为以下两类读者带来直接收益:
以C/C++/Rust为主力开发语言,并且希望介入前端领域的开发者;
希望借助高性能的C/C++/Rust库解决前端性能问题的JavaScript开发者。
如何阅读本书
本书旨在介绍如何使用C/C++/Rust语言开发实用的WebAssembly模块,要求读者具备基本的JavaScript和C/C++开发技能。本书主要分为以下三篇。
基础篇(第1章至第3章):介绍了使用C/C++语言及Emscripten工具链开发WebAssembly模块的基本方法。
方法篇(第4章至第8章):对Emscripten运行时、WebAssembly友好的一般性方法、网络I/O、并发执行、GUI及交互展开讨论。
前沿篇(第9章和第10章):介绍了如何使用Rust语言开发WebAssembly模块和WASI应用。
书籍介绍
这是一部讲解如何用高级编程语言开发WebAssembly应用的著作,由国内WebAssembly领域的先驱者和布道者撰写。
全书一共10章,分为三篇。
第一篇 基础篇(第1~3章)
首先介绍了WebAssembly的基础和工具链Emscripten的用法,然后详细讲解了使用 C/C++语言和Emscripten开发WebAssembly模块的方法。
第二篇 方法篇(第4~8章)
对 Emscripten 运行时、WebAssembly 友好的一般性方法、网络 I/O、并发执行、GUI 及交互等知识点展开了深入的讨论。
第三篇 前沿篇(第9~10章)
详细讲解了WASI以及如何使用 Rust 语言开发 WebAssembly模块和 WASI 应用。
随着WebAssembly技术的兴起,网页应用与桌面应用的性能差距正在飞快地缩小,“浏览器+页面”正在以惊人的速度进入音/视频、CAD/CAM等“操作系统+应用程序”专属的领域。本书专注于WebAssembly工程应用的开发。通过阅读本书,你将获得以下技能。
掌握使用C/C++/Rust等高级语言开发WebAssembly模块,以及与外部的JavaScript环境交互。
借助高性能的 C/C++/Rust 库解决前端性能问题。
理解网页环境的功能限制,以及由此带来的在高级语言环境中应遵循的一般性原则。
掌握DOM元素、网络I/O、网页并发执行在WebAssembly模块中的使用方法。
网站评分
书籍多样性:6分
书籍信息完全性:9分
网站更新速度:8分
使用便利性:4分
书籍清晰度:3分
书籍格式兼容性:6分
是否包含广告:5分
加载速度:6分
安全性:4分
稳定性:9分
搜索功能:4分
下载便捷性:5分
下载点评
- 购买多(100+)
- 一般般(112+)
- 好评(302+)
- 章节完整(673+)
- 情节曲折(666+)
- 无漏页(423+)
- 体验好(252+)
- 中评(183+)
下载评价
- 网友 龚***湄:
差评,居然要收费!!!
- 网友 邱***洋:
不错,支持的格式很多
- 网友 沈***松:
挺好的,不错
- 网友 师***怡:
说的好不如用的好,真心很好。越来越完美
- 网友 瞿***香:
非常好就是加载有点儿慢。
- 网友 师***怀:
好是好,要是能免费下就好了
- 网友 宫***凡:
一般般,只能说收费的比免费的强不少。
- 网友 权***颜:
下载地址、格式选择、下载方式都还挺多的
- 网友 孙***夏:
中评,比上不足比下有余
喜欢"面向WebAssembly编程:应用开发方法与实践"的人也看了
微信营销108招 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
中公版2013多省市公务员考试专用教材行政职业能力测验高频考题2001道及名师详解 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
细胞总动员 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
戴拿奥特曼11 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
幼儿园多元智能游戏活动(中班上)(全国版)(全7册) 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
老师的10个对不起 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
9787512357174 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
网络服务计算基础/新型网络服务计算原理与实践系列丛书 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
9787122184306 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
电子技术 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 故宫里的色彩美学+色彩通识100讲+日本传统色 共3册 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 高级·财务·会计——上海财经大学会计教材系列丛书 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 室内装饰工程制图与识图 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 软件设计师考前突破:考点精讲、真题精解、难点精练 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 七年级易错题:道德与法治、历史、地理、生物(下)RJ版 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- OKLAHOMA 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 看,蜜蜂! 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 教材划重点高中英语选择性必修第二册BS北师版新高考版教材全解读 理想树2022新高考版 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 短程动力治疗—心理治疗译丛 (美)利文森 著,郭本禹,李令永 译 安徽人民出版社,【正版可开发票】 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
- 五子棋提高【正版】 下载 pdf 百度网盘 epub 免费 2025 电子版 mobi 在线
书籍真实打分
故事情节:6分
人物塑造:3分
主题深度:5分
文字风格:6分
语言运用:4分
文笔流畅:9分
思想传递:5分
知识深度:6分
知识广度:9分
实用性:5分
章节划分:7分
结构布局:8分
新颖与独特:5分
情感共鸣:4分
引人入胜:8分
现实相关:7分
沉浸感:6分
事实准确性:6分
文化贡献:8分