website

卢贤泼的博客

所属分类:技术博客与个人站

汇集编程实践、阅读影评与生活记录的个人博客。

卢贤泼的博客将编程实践、阅读、电影与生活记录放在同一个个人站点中,并按年份和主题标签整理文章。其中《WebAssembly With Rust》从初始化 Rust 项目讲起,展示使用 wasm-pack 生成浏览器可用的 WebAssembly 模块,以及通过 wasm-bindgen 与 JavaScript 交互的基本路径。

卢贤泼的博客:Rust 构建 WebAssembly 的入门记录

发布于 2026年10月21日更新于 2026年10月27日

个人主页与长期文章归档

首页先以简短简介说明作者关注编程、阅读、音乐、电影和生活,也介绍其在互联网公司从事前端相关工作的背景。随后按年份展示文章卡片,标题旁有日期、地点、正文摘要和主题标签。导航提供首页与关于我两个入口,读者可以从文章列表浏览,也可以借助标签在技术文章、读书笔记、影评和个人记录之间切换。

卢贤泼的博客首页显示个人简介与按年份排列的文章

站点保存了多个阶段的文章内容。首页可以看到“漫长的告别”系列、年度回顾、电影与阅读记录、macOS 工具配置以及博客实现细节等主题。它不是只围绕某一种技术栈编排的教程网站;技术内容与生活写作并列呈现,更接近持续积累的个人知识和经历档案。访问者可以先根据标题判断文章方向,再进入正文查看具体说明或作者的个人体会。

WebAssembly 文章想回答什么问题

《WebAssembly With Rust》围绕一个具体目标展开:如何使用 Rust 编写代码,将其构建为 WebAssembly,并在浏览器页面中加载运行。文章从基础环境和项目初始化切入,接着介绍 Rust 社区提供的 wasm-pack,以及用于 Rust 与 JavaScript 互操作的 wasm-bindgen。这样的安排适合已有一些 Rust 或前端基础、希望理解从源代码到浏览器运行产物的读者。

WebAssembly With Rust 文章展示 Rust 项目初始化与 wasm-pack 构建示例

文中先创建一个库项目,再使用 wasm-pack 将 Rust 代码打包为面向 Web 的模块。构建产物放入新的 pkg 目录后,页面通过 JavaScript 模块导入初始化函数和 Rust 导出的函数,等待初始化完成后再调用。文章借助这一小段示例说明 WebAssembly 并非孤立的二进制文件,而是通过 JavaScript API 加载进浏览器,再由页面代码与其交换调用。

后续内容从源码角度讨论模块加载、函数调用与浏览器交互,并对 Rust 实现与 JavaScript 实现进行一次示例测试。文章据此提醒读者,跨边界的数据传递和调用本身也有开销,单看某次简单函数循环并不能概括所有应用的性能表现。是否值得把逻辑移到 WebAssembly,应结合真实计算任务、数据规模和调用频率测量,而不应仅凭语言或格式名称推断一定更快。

从项目创建到浏览器调用

文章给出的入门路线可以概括为几步。首先准备 Rust 工具链并初始化库项目;随后安装或调用 wasm-pack 完成面向 Web 的构建;如果模块需要调用 JavaScript 中的方法,则使用 wasm-bindgen 处理交互接口;最后由浏览器加载生成的 JavaScript 胶水代码和 WebAssembly 文件,并在页面中调用导出的函数。每一步都对应不同的职责:Rust 源代码描述计算逻辑,构建工具整理浏览器可加载的产物,JavaScript 负责页面侧的初始化和调用。

这条路径对初学者有帮助,因为它把“写 Rust”与“网页真正运行模块”之间的转换环节展示出来。实际工程中还需要处理构建目标、打包器配置、异步初始化、错误处理、浏览器兼容情况和资源部署等问题。文章适合作为概念和最小示例的起点,读者应继续查看 Rust、wasm-pack、wasm-bindgen 与浏览器 API 的当前文档,再根据项目结构补齐这些工程细节。

性能和互操作需要分别理解

WebAssembly 经常与性能提升联系在一起,但页面示例同时涉及模块初始化、JavaScript 到 WebAssembly 的函数调用和数据传递。若任务只执行少量简单操作,交互成本可能占据显著比例;如果工作负载包含更复杂的计算,结果又可能不同。因此评估方案时,需要将计算本身与跨语言边界的成本分开,选择与产品实际行为相近的基准。

文章中的测试记录带有其当时的浏览器和实现条件,不能直接当作新浏览器或所有设备上的通用结论。本文也不把过去的测量数据转写成当前性能排名。对于读者来说,重要的是借文章理解测试要观察哪些环节:模块是否正确加载、函数如何传参、数据转换是否耗时,以及最终用户的完整任务耗时如何变化。这样的判断方式比单独比较语言名称更可靠。

技术文章与阅读生活并置

除了 WebAssembly,站点还保存 macOS 常用工具与配置、博客技术实现和 Python 面向 JavaScript 开发者等技术文章。阅读标签下则有书籍笔记,电影栏目讨论纪录片和影视作品;首页的年度总结和“漫长的告别”系列记录作者对工作、生活变化和阅读习惯的回顾。不同类别由主题标签连接,访问者既可将站点当作技术文章索引,也可以沿着阅读或生活栏目浏览。

这种组织方式让技术文章具有清晰背景:它们来自一个关注编程同时也重视阅读与生活记录的个人作者,而不是一份由团队维护的产品文档。读者在参考代码时,可以关注文章发布日期、引用的工具和运行环境;在阅读随笔时,则可以把它们视为作者个人经验,而非适用于所有人的普遍结论。

适合哪些读者

想了解 Rust 如何进入 WebAssembly 构建流程的开发者,可以从本文介绍的项目创建、打包、模块加载和 JavaScript 调用逐步阅读,再沿来源链接进入官方说明。正在评估 WebAssembly 是否适合具体前端任务的读者,可以参考文章提出的交互与计算成本问题,随后在自己的负载上进行测试。对个人技术博客、阅读笔记和生活记录感兴趣的人,则可以从首页年份和标签进入相关内容。

查阅较早的技术文章时,建议确认依赖版本和浏览器支持情况,并以当前官方文档为准。编译工具和前端构建方式会持续演进,文章中的命令可能需要调整。把这篇记录用作理解基本流程的入口,再结合当下工具链验证项目,可以让读者既利用其清晰的入门叙述,也避免把历史示例直接当作现行配置标准。