<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>WebAssembly 专题：从浏览器高性能到云原生边缘计算 on PlumePHP</title><link>https://plumephp.com/posts/wasm/</link><description>Recent content in WebAssembly 专题：从浏览器高性能到云原生边缘计算 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 30 Sep 2026 14:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/posts/wasm/index.xml" rel="self" type="application/rss+xml"/><item><title>WASM 构建与打包工具链：wasm-bindgen、wasm-pack 与前端集成</title><link>https://plumephp.com/wasm-bundler-build-toolchain/</link><pubDate>Wed, 30 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-bundler-build-toolchain/</guid><description>&lt;h2 id="导语把-wasm-当成一等前端资源"&gt;导语：把 WASM 当成一等前端资源&lt;/h2&gt;
&lt;p&gt;写好 Rust/C 代码、编成 &lt;code&gt;.wasm&lt;/code&gt; 只是第一步；让它无缝融入前端工程化才是关键。现代前端有 TypeScript、Vite、esbuild、Tree-shaking、CDN 分发——WASM 必须在这套体系里成为「一等资源」。本文系统讲 WASM 构建与打包工具链：&lt;code&gt;wasm-bindgen&lt;/code&gt; 的胶水原理、&lt;code&gt;wasm-pack&lt;/code&gt; 工作流、vite/esbuild 插件集成、Tree-shaking 的真相、&lt;code&gt;wasm-opt&lt;/code&gt; 体积优化、npm/CDN 发布，以及 CI 与版本兼容的工程化实践。&lt;/p&gt;</description></item><item><title>WASM 媒体处理：音视频编解码、转码与滤镜</title><link>https://plumephp.com/wasm-media-processing-codecs/</link><pubDate>Wed, 30 Sep 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-media-processing-codecs/</guid><description>&lt;h2 id="导语媒体处理从服务器走向终端"&gt;导语：媒体处理从服务器走向终端&lt;/h2&gt;
&lt;p&gt;视频剪辑、格式转换、封面生成、滤镜特效——过去这些都在服务器干：上传 → 后端 FFmpeg 转码 → 下载。但这样延迟高、带宽贵、数据要离开设备。WASM 把 &lt;strong&gt;FFmpeg 整个编进浏览器&lt;/strong&gt;，终端直接转码、加滤镜、抽帧，隐私与成本双赢。同时浏览器原生 &lt;strong&gt;WebCodecs&lt;/strong&gt; 也提供了硬件加速编解码。本文系统讲 WASM 媒体处理：动机、ffmpeg.wasm、WebCodecs 对比、转码/缩略图/滤镜实战、多线程与内存陷阱、流式处理、WebGPU 加速与边缘媒体处理。&lt;/p&gt;</description></item><item><title>WASM 密码学：WebCrypto、WASM 密码库与安全计算</title><link>https://plumephp.com/wasm-crypto-webcrypto/</link><pubDate>Wed, 30 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-crypto-webcrypto/</guid><description>&lt;h2 id="导语浏览器密码学的第三种力量"&gt;导语：浏览器密码学的第三种力量&lt;/h2&gt;
&lt;p&gt;浏览器早就内置了密码学——WebCrypto API 直接调用浏览器底层原生实现，快且安全，但算法清单是「官方固定」的：没有 Argon2、没有 XChaCha20、部分浏览器缺 Ed25519。当应用需要&lt;strong&gt;新算法、自建协议、敏感的多方计算&lt;/strong&gt;时，WASM 成为第三种力量：把 libsodium、OpenSSL 乃至零知识证明库编译进浏览器，算法与实现完全自控。本文系统讲 WASM 密码学：WebCrypto 边界、何时上 WASM、libsodium/OpenSSL 编译、constant-time 侧信道防护、密钥管理、MPC/ZK 在 WASM，以及与 native crypto 的性能对比。&lt;/p&gt;</description></item><item><title>WASM 数据库与持久化：SQLite、OPFS 与本地存储</title><link>https://plumephp.com/wasm-sqlite-database-storage/</link><pubDate>Wed, 30 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-sqlite-database-storage/</guid><description>&lt;h2 id="导语数据库跑进浏览器与边缘"&gt;导语：数据库跑进浏览器与边缘&lt;/h2&gt;
&lt;p&gt;浏览器应用越来越需要「本地数据库」：离线优先、端到端低延迟、数据不出设备。传统答案 localStorage（字符串 KV）容量小、无查询；IndexedDB（对象仓库）有查询但复杂。&lt;strong&gt;WASM 给出了最强答案——把 SQLite 整个编译进浏览器&lt;/strong&gt;，一个完整的 SQL 数据库直接跑在用户设备上。本文系统讲 WASM 数据库与持久化：为什么是 SQLite、sql.js/wa-sqlite/libsql 三库对比、编译加载、OPFS/IndexedDB 持久化方案、WASI 下的服务端场景、离线同步策略与性能基准。&lt;/p&gt;</description></item><item><title>WASM 语言运行时：在浏览器跑 Python、Ruby 与其他语言</title><link>https://plumephp.com/wasm-language-runtimes-browser/</link><pubDate>Wed, 30 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-language-runtimes-browser/</guid><description>&lt;h2 id="导语浏览器成为多语言运行时的第二现场"&gt;导语：浏览器成为多语言运行时的第二现场&lt;/h2&gt;
&lt;p&gt;浏览器只有一个 JavaScript 运行时，但用户想把 Python、Ruby、Lua、SQL 都搬进网页——用于教学、数据可视化、沙箱执行甚至离线计算。WASM 让这一切成为现实：把解释器整个编译成 &lt;code&gt;.wasm&lt;/code&gt;，浏览器就成了任意语言的运行时宿主。本文系统讲这套生态：Pyodide、Ruby WASI、QuickJS、Wasmtime 嵌入，跨语言调用与对象桥接，性能与体积的权衡，以及教学/沙箱/客户端计算三大场景与选型矩阵。&lt;/p&gt;</description></item><item><title>WASM 容器运行时与 Kubernetes：runwasi、containerd 与微服务落地</title><link>https://plumephp.com/wasm-container-runtimes-k8s/</link><pubDate>Wed, 30 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-container-runtimes-k8s/</guid><description>&lt;h2 id="导语wasm-如何成为云原生的新容器"&gt;导语：WASM 如何成为云原生的新容器&lt;/h2&gt;
&lt;p&gt;容器解决了「应用打包与分发」，但 500ms~2s 的冷启动、共享内核的逃逸面、每 Pod 数十 MiB 的内存开销，让它在 Serverless、多租户边缘、函数粒度的场景里越来越吃力。WebAssembly 恰好补齐这些短板：毫秒级实例化、用户态内存隔离、单实例低至数 MiB。Kubernetes 生态的答案是——&lt;strong&gt;用 containerd shim 把 WASM 塞进 CRI 管线&lt;/strong&gt;，让 K8s 像调度容器一样调度 WASM 模块。本文从动机、runwasi 与 shim 原理讲到 RuntimeClass 调度、多租户隔离、镜像分发与从 sidecar 到全 WASM 的落地路线。&lt;/p&gt;</description></item><item><title>WASM 宿主嵌入 API：在 Rust/C/Go/Python 中跑 WASM 模块</title><link>https://plumephp.com/wasm-embedding-hosting-apis/</link><pubDate>Mon, 28 Sep 2026 15:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-embedding-hosting-apis/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;WASM 最强大的用法不是「在浏览器里跑」，而是&lt;strong&gt;作为库被任意语言的主程序嵌入&lt;/strong&gt;：一个 Rust/Python/Go 的服务，把不可信的第三方逻辑编成 WASM，运行时隔离执行——插件系统、FaaS 单元、规则引擎、脚本化计算，都是这个模式。嵌入的关键是 &lt;strong&gt;宿主 API&lt;/strong&gt;：加载模块、实例化、调用导出函数、让 WASM 回调宿主能力（host 函数）、安全地读写线性内存。本文按语言过一遍主流嵌入方式，讲透统一模型与工程取舍。&lt;/p&gt;</description></item><item><title>WASM 异常处理与栈切换提案：try_table、suspend/resume 与异步运行时</title><link>https://plumephp.com/wasm-exceptions-stack-switching/</link><pubDate>Mon, 28 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-exceptions-stack-switching/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;C/C++ 有 &lt;code&gt;try/catch&lt;/code&gt;、Rust 有 &lt;code&gt;panic/unwind&lt;/code&gt;、Java 有 &lt;code&gt;throw&lt;/code&gt;——但 &lt;strong&gt;WASM 最初没有异常指令&lt;/strong&gt;。于是编译器只能把「抛异常」降级成「返回错误码 + 手动检查」，写起来痛苦、性能也差。&lt;strong&gt;Exceptions 提案&lt;/strong&gt;补上这块：WASM 原生支持标签抛出与类型化捕获。而更进一步的 &lt;strong&gt;Stack Switching 提案&lt;/strong&gt; 让 WASM 能「挂起整条调用栈再恢复」——这为真正的异步运行时、协程、生成器铺平道路。本文把这两大控制流提案讲透：它们解决什么、指令怎么用、运行时支持到哪、以及和 JS 事件循环怎么对接。&lt;/p&gt;</description></item><item><title>WASI 文件系统与沙箱：preopened 目录、能力模型与路径逃逸防护</title><link>https://plumephp.com/wasm-wasi-filesystem-sandbox/</link><pubDate>Mon, 28 Sep 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-wasi-filesystem-sandbox/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;WASI 最反直觉的一点：&lt;strong&gt;WASM 模块默认什么文件都碰不到&lt;/strong&gt;。没有「工作目录」「当前用户文件」，甚至没有 &lt;code&gt;/&lt;/code&gt;——它看到的文件系统完全是宿主「显式打开」的那几扇窗。这套 &lt;strong&gt;能力（capability）模型&lt;/strong&gt; 与 OS 的 &lt;code&gt;chroot&lt;/code&gt;、容器的挂载卷有本质区别：它不是「把整个文件系统藏起来一部分」，而是「根本没给文件系统，只给能力凭证」。本文把 WASI 文件系统沙箱的机制拆开：preopened directories 是什么、fd 与 path_open 的能力链怎么走、路径解析如何杜绝 &lt;code&gt;..&lt;/code&gt; 与符号链接逃逸、权限标志怎么配、以及多租户场景的正确姿势。&lt;/p&gt;</description></item><item><title>Rust 编译到 WASM 的进阶优化：wasm-bindgen、体积控制与异步</title><link>https://plumephp.com/wasm-rust-compilation-optimization/</link><pubDate>Mon, 28 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-rust-compilation-optimization/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;Rust 是 WASM 生态的第一公民，但「能编译」和「编得好」是两回事：默认 release 产物动辄几百 KB、JS↔WASM 边界反复分配字符串、async 代码在浏览器里难以落地。本文是 /wasm-rust-compilation-guide/ 的进阶篇，聚焦&lt;strong&gt;产物体积、执行性能、异步模型&lt;/strong&gt;三个维度：wasm-bindgen 的 glue 到底做了什么、release 配置怎么调、wasm-opt 后处理怎么把体积再压一半、Rust 无栈协程如何跨过 JS 边界、以及常用工具的排查路径。&lt;/p&gt;</description></item><item><title>Wasmtime 运行时深入：Cranelift、JIT/AOT 与资源管控</title><link>https://plumephp.com/wasm-wasmtime-runtime/</link><pubDate>Mon, 28 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-wasmtime-runtime/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;把 WASM 跑在服务器端，「运行时」就是新的「浏览器」。&lt;strong&gt;Wasmtime&lt;/strong&gt; 由 Mozilla 主导、是 &lt;strong&gt;WASI（WebAssembly System Interface）的参考实现&lt;/strong&gt;，也是组件模型与各类 WASI 提案的先行者。它不只是「跑 WASM 的程序」，而是一个可嵌入的库：提供 &lt;strong&gt;Cranelift&lt;/strong&gt; 编译器把 WASM 编成机器码，用 &lt;strong&gt;JIT/AOT&lt;/strong&gt; 两种路径执行，用 &lt;strong&gt;epoch interruption&lt;/strong&gt; 与 &lt;strong&gt;fuel&lt;/strong&gt; 做抢占和计量，用能力授权落地 WASI 安全模型。本文拆解 Wasmtime 的引擎内部，让「服务器端 WASM」不再是一个黑盒。&lt;/p&gt;</description></item><item><title>WASM 上的 AI 推理：ONNX Runtime Web、WASI-NN 与边缘模型部署</title><link>https://plumephp.com/wasm-ai-inference-browser/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-ai-inference-browser/</guid><description>&lt;h2 id="导语模型跑在浏览器与边缘的答案"&gt;导语：模型跑在浏览器与边缘的答案&lt;/h2&gt;
&lt;p&gt;AI 推理不一定都在云端 GPU 集群。&lt;strong&gt;隐私敏感&lt;/strong&gt;（人脸/语音/文档）、&lt;strong&gt;离线可用&lt;/strong&gt;、&lt;strong&gt;低延迟&lt;/strong&gt;（无网络往返）场景，越来越需要模型在浏览器、边缘节点或用户设备上直接运行。WASM 给出了关键答案：一套编译产物（ONNX Runtime 编译到 WASM）同时跑在浏览器、Cloudflare 边缘、移动端，代码零重写，且天然沙箱安全。&lt;/p&gt;</description></item><item><title>WASM 安全模型与沙箱：内存隔离、能力授权与运行时加固</title><link>https://plumephp.com/wasm-security-sandbox/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-security-sandbox/</guid><description>&lt;h2 id="导语为什么-wasm-天然是沙箱"&gt;导语：为什么 WASM 天然是沙箱&lt;/h2&gt;
&lt;p&gt;WebAssembly 从设计之初就把「安全执行不可信代码」作为一等公民。它的核心卖点不仅是性能，更是&lt;strong&gt;结构化的安全保证&lt;/strong&gt;：线性内存隔离、无原生指针、指令集受限、宿主通过能力（Capability）显式授权资源。这让 WASM 成为多租户平台（边缘函数、FaaS、插件系统、区块链合约）的理想执行环境——相比容器的进程隔离，WASM 沙箱更轻、更快、启动即隔离。&lt;/p&gt;</description></item><item><title>WASM 嵌入式与物联网：WAMR 运行时、资源约束与设备部署</title><link>https://plumephp.com/wasm-embedded-iot/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-embedded-iot/</guid><description>&lt;h2 id="导语给海量设备的可更新可隔离执行环境"&gt;导语：给海量设备的「可更新、可隔离」执行环境&lt;/h2&gt;
&lt;p&gt;物联网最大的痛点是&lt;strong&gt;碎片化与不可更新&lt;/strong&gt;：设备主控各异、固件刷写危险、单点故障致命。WASM 给了 IoT 一个优雅答案——&lt;strong&gt;设备上跑一个小型 WASM 运行时（WAMR），业务逻辑以 .wasm 下发&lt;/strong&gt;：更新不动固件、隔离降低故障扩散、同一业务逻辑跨芯片复用。这与服务器端「边缘函数」同构，只是把约束压到 KB 级内存与毫瓦级功耗。&lt;/p&gt;</description></item><item><title>WASM 智能合约：区块链执行环境、确定性运行与合约开发</title><link>https://plumephp.com/wasm-blockchain-contracts/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-blockchain-contracts/</guid><description>&lt;h2 id="导语为什么区块链把执行环境押在-wasm"&gt;导语：为什么区块链把执行环境押在 WASM&lt;/h2&gt;
&lt;p&gt;区块链要求「全网节点对同一输入算出同一结果」——这需要执行环境&lt;strong&gt;确定、可验证、可移植&lt;/strong&gt;。WASM 恰好是为此设计的：指令集清晰、无浮点歧义、产物可被校验器验证、多语言（Rust/C/Go）都能编译。于是 Cosmos、Polkadot、EOS、NEAR 等主流链把智能合约执行环境建在 WASM 上，替代或补充 EVM。&lt;/p&gt;</description></item><item><title>WASM 游戏与 WebGPU：高性能浏览器图形渲染与游戏引擎</title><link>https://plumephp.com/wasm-game-webgpu/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-game-webgpu/</guid><description>&lt;h2 id="导语把桌面级游戏带进浏览器"&gt;导语：把桌面级游戏带进浏览器&lt;/h2&gt;
&lt;p&gt;浏览器的游戏上限一直被 JavaScript 的运行时开销卡着——物理、寻路、大场景渲染都吃力。WASM 把 C++/Rust 游戏引擎以接近原生速度搬进浏览器，WebGPU 则补上 GPU 渲染的最后一块拼图：一套现代、可移植的图形 API。两者组合，让「浏览器跑 3A 级引擎」从口号变成可落地的工程。&lt;/p&gt;</description></item><item><title>WASM 调试与性能剖析：源码映射、断点调试与火焰图分析</title><link>https://plumephp.com/wasm-debugging-profiling-tools/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-debugging-profiling-tools/</guid><description>&lt;h2 id="导语wasm-的黑盒难题怎么破"&gt;导语：WASM 的「黑盒」难题怎么破&lt;/h2&gt;
&lt;p&gt;WASM 是二进制、跑在沙箱里，调试起来像看黑盒——错误没有源码行、性能瓶颈藏在 JIT 产物里。但现代工具链已经把这层黑盒打开：&lt;strong&gt;DWARF 调试信息 + 源码映射&lt;/strong&gt;让 DevTools 能对 wasm 里的 Rust/C++ 源码打断点、看变量、看调用栈；&lt;strong&gt;运行时注入 + 采样剖析&lt;/strong&gt;能画出火焰图定位瓶颈。掌握这套调试链路，WASM 开发就不再是「盲猜」。&lt;/p&gt;</description></item><item><title>WasmGC 提案与托管语言：Java/C#/Kotlin 原生编译到 WASM</title><link>https://plumephp.com/wasm-garbage-collection/</link><pubDate>Mon, 28 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-garbage-collection/</guid><description>&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;p&gt;WASM 最初为 C/C++/Rust 设计——它们用&lt;strong&gt;线性内存&lt;/strong&gt;自己管理一切，天然适合 WASM 的底层模型。但 Java、C#、Kotlin 这类&lt;strong&gt;托管语言&lt;/strong&gt;依赖垃圾回收（GC）管理对象生命周期，直接编译到 WASM 会撞上「没有 GC 指令」的墙：要么把整个运行时（含 GC）编进去（体积爆炸、性能差），要么用线性内存手动模拟（别扭且易错）。&lt;strong&gt;WasmGC&lt;/strong&gt; 提案从根上解决：让 WASM 原生支持 GC 对象与回收，托管语言可以干净地编译成 WASM。本文把 WasmGC 的提案动机、引用类型、指令集、运行时集成与各语言编译路径一次讲透。&lt;/p&gt;</description></item><item><title>WASM 边缘计算与 CDN 落地实践</title><link>https://plumephp.com/wasm-edge-computing-cdn/</link><pubDate>Sat, 26 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-edge-computing-cdn/</guid><description>&lt;h2 id="导语代码跑在离用户-30ms-的地方"&gt;导语：代码跑在离用户 30ms 的地方&lt;/h2&gt;
&lt;p&gt;CDN 正在从&amp;quot;缓存静态资源&amp;quot;进化为&amp;quot;执行动态逻辑&amp;quot;——在离用户最近的 PoP（边缘节点）运行业务代码，省去回源请求的数百毫秒。但边缘节点的资源是稀缺的：CPU 有限、单请求预算 10-50ms、内存几百 MB。&lt;/p&gt;</description></item><item><title>WASM SIMD 高性能计算实战</title><link>https://plumephp.com/wasm-simd-high-performance/</link><pubDate>Sat, 26 Sep 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-simd-high-performance/</guid><description>&lt;h2 id="导语一次操作八个数"&gt;导语：一次操作八个数&lt;/h2&gt;
&lt;p&gt;CPU 单核的性能增长早已撞上频率墙，真正的加速来自&lt;strong&gt;并行&lt;/strong&gt;——最廉价的就是数据级并行（DLP）：一条指令同时对多个数据做同一运算。桌面 CPU 的 SSE/AVX 已经干了二十年这件事，而 WebAssembly 直到 2021 年才把 &lt;strong&gt;SIMD 128&lt;/strong&gt; 作为标准提案合入规范（操作码 &lt;code&gt;0xFD&lt;/code&gt; 前缀）。&lt;/p&gt;</description></item><item><title>WASM 多线程与 SharedArrayBuffer</title><link>https://plumephp.com/wasm-multithreading-sharedarraybuffer/</link><pubDate>Sat, 26 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-multithreading-sharedarraybuffer/</guid><description>&lt;h2 id="导语单线程-wasm-的天花板"&gt;导语：单线程 WASM 的天花板&lt;/h2&gt;
&lt;p&gt;WASM 诞生之初是&lt;strong&gt;单线程&lt;/strong&gt;的：一个模块实例一个栈、一份线性内存，指令顺序执行。这对于函数式计算够用，但面对图像/视频处理、机器学习、数据分析这些天生可并行的负载，单线程只能望洋兴叹。&lt;/p&gt;</description></item><item><title>WASI Preview 2 与 wasi-http：标准化的网络接口</title><link>https://plumephp.com/wasm-wasi-preview2-http/</link><pubDate>Sat, 26 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-wasi-preview2-http/</guid><description>&lt;h2 id="导语wasi-的第二次标准化"&gt;导语：WASI 的第二次标准化&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://plumephp.com/posts/wasm/wasm-wasi-runtime-cloud"&gt;WASI Preview 1&lt;/a&gt; 让 WASM 走出了浏览器，但它存在结构性缺陷：接口用 C 风格 &lt;code&gt;fd_*&lt;/code&gt; 函数硬编码、没有异步、&lt;code&gt;wasi_unstable&lt;/code&gt; 版本管理混乱。字节码联盟从 2023 年开始全面重写——这就是 &lt;strong&gt;WASI Preview 2&lt;/strong&gt;：接口全部用 &lt;a href="https://plumephp.com/posts/wasm/wasm-component-model-wit"&gt;WIT 组件模型&lt;/a&gt; 定义，类型安全、模块化、可异步。&lt;/p&gt;</description></item><item><title>WASM 组件模型与 WIT 接口类型</title><link>https://plumephp.com/wasm-component-model-wit/</link><pubDate>Sat, 26 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-component-model-wit/</guid><description>&lt;h2 id="导语从模块到组件"&gt;导语：从「模块」到「组件」&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://plumephp.com/posts/wasm/wasm-introduction-architecture"&gt;核心 WASM&lt;/a&gt; 解决的是&amp;quot;单语言高性能执行&amp;quot;问题：Rust 编译出一个模块，JS 负责胶水。但跨语言协作仍然痛苦——Rust 模块不能直接调用 Go 模块，字符串传递要手动做编码，接口描述靠人类记忆。&lt;/p&gt;</description></item><item><title>WASM 二进制格式与内存模型深度剖析</title><link>https://plumephp.com/wasm-binary-format-memory-model/</link><pubDate>Sat, 26 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-binary-format-memory-model/</guid><description>&lt;h2 id="导语把-wasm-当作字节来读"&gt;导语：把 .wasm 当作字节来读&lt;/h2&gt;
&lt;p&gt;大多数 WASM 开发者停留在&amp;quot;Rust 编译 → JS 调用&amp;quot;的黑盒层面：&lt;code&gt;cargo build --target wasm32-unknown-unknown&lt;/code&gt; 产出一个二进制文件，交给浏览器执行。但当你需要调试格式问题、手写测试模块、理解体积优化、甚至实现运行时（Wasmtime/WasmEdge 的同事就在做这件事）时，必须钻进字节层面。&lt;/p&gt;</description></item><item><title>WebAssembly 与 JavaScript 深度互操作</title><link>https://plumephp.com/wasm-javascript-interop/</link><pubDate>Tue, 22 Sep 2026 15:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-javascript-interop/</guid><description>&lt;h2 id="导语js-与-wasm-之间的桥梁"&gt;导语：JS 与 WASM 之间的桥梁&lt;/h2&gt;
&lt;p&gt;WebAssembly 本身是一个&amp;quot;黑盒&amp;quot;计算模块，它只能做纯计算——不能访问 DOM、不能发起 HTTP 请求、不能读写文件。这意味着 WASM 与外界的&lt;strong&gt;所有交互都必须通过 JavaScript 进行&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>WebAssembly 微服务与边缘计算实践</title><link>https://plumephp.com/wasm-microservices-edge/</link><pubDate>Tue, 22 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-microservices-edge/</guid><description>&lt;h2 id="导语为什么边缘需要-wasm"&gt;导语：为什么边缘需要 WASM&lt;/h2&gt;
&lt;p&gt;边缘计算的场景非常特殊：计算资源有限（通常只有几核 CPU、几 GB 内存）、网络延迟敏感、冷启动频繁、需要强隔离但负担不起完整 VM 的开销。&lt;/p&gt;
&lt;p&gt;传统的边缘部署方式有三类问题：&lt;/p&gt;</description></item><item><title>WebAssembly 性能优化实战</title><link>https://plumephp.com/wasm-performance-optimization/</link><pubDate>Tue, 22 Sep 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-performance-optimization/</guid><description>&lt;h2 id="导语wasm-的更快之道"&gt;导语：WASM 的更快之道&lt;/h2&gt;
&lt;p&gt;WebAssembly 已经很快了——但仍然有巨大的优化空间。一个未优化的 WASM 模块可能比优化后的版本慢 3-5 倍，体积大 10 倍以上。&lt;/p&gt;
&lt;p&gt;性能优化要从&lt;strong&gt;编译时&lt;/strong&gt;和&lt;strong&gt;运行时&lt;/strong&gt;两个维度入手：&lt;/p&gt;</description></item><item><title>WASI 运行时与服务器端 WebAssembly</title><link>https://plumephp.com/wasm-wasi-runtime-cloud/</link><pubDate>Tue, 22 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-wasi-runtime-cloud/</guid><description>&lt;h2 id="导语wasm-离开浏览器"&gt;导语：WASM 离开浏览器&lt;/h2&gt;
&lt;p&gt;WebAssembly 最初的设计目标很明确：在浏览器中运行高性能代码。但当它的安全沙箱、快速启动、平台无关等特性被深入理解后，一个更大的场景浮现——&lt;strong&gt;服务器端&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>Rust 编译到 WebAssembly 完全指南</title><link>https://plumephp.com/wasm-rust-compilation-guide/</link><pubDate>Tue, 22 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-rust-compilation-guide/</guid><description>&lt;h2 id="导语为什么选择-rust--webassembly"&gt;导语：为什么选择 &lt;a href="https://plumephp.com/posts/rust/"&gt;Rust&lt;/a&gt; + WebAssembly&lt;/h2&gt;
&lt;p&gt;Rust 是目前编译到 WebAssembly 的最佳选择，没有之一。&lt;/p&gt;
&lt;p&gt;原因非常直观：Rust 的&lt;strong&gt;内存安全&lt;/strong&gt;和&lt;strong&gt;零成本抽象&lt;/strong&gt;与 WASM 的设计理念高度契合。编译器在编译阶段就能消除数据竞争和内存泄漏，使得生成的 WASM 模块天然安全且高效。更重要的是，Rust 生态已经围绕 WASM 建立了完善的工具链：&lt;/p&gt;</description></item><item><title>WebAssembly 基础概念与编解码原理</title><link>https://plumephp.com/wasm-introduction-architecture/</link><pubDate>Tue, 22 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/wasm-introduction-architecture/</guid><description>&lt;h2 id="导语为什么需要-webassembly"&gt;导语：为什么需要 WebAssembly&lt;/h2&gt;
&lt;p&gt;2015 年，Mozilla、Google、Microsoft 和 Apple 四家浏览器巨头联合成立 W3C WebAssembly 社区组，目标一致：在 Web 上实现&lt;strong&gt;接近原生代码的执行速度&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;JavaScript 经过二十年发展，早已不是简单的脚本语言，但问题是：它是一种动态类型、解释执行的脚本语言。虽然 V8 JIT 引擎（Crankshaft → TurboFan → Sparkplug）让 JS 速度接近 C++ 的 50%-70%，但重型任务（视频编解码、3D 引擎、科学计算）依然力不从心。&lt;/p&gt;</description></item></channel></rss>