Skip to main content

WebAssembly周刊-第167期

使用 WASM3 在嵌入式设备上运行 WebAssembly

WebAssembly 在物联网和嵌入式系统中越来越受欢迎,但目前相关话题的文章仍然较少。这是一篇非常有趣和实用的文章,展示了如何在 D1 mini 上使用 WASM3 运行 WebAssembly 代码。

WASM3 是一款 WebAssembly 解释器,面向不追求性能的应用程序。与倾向于使用 JIT 编译的其他 WebAssembly 运行时相比,WASM3 更为简单,可执行文件也更小。在这篇文章中,作者将介绍如何在D1 mini 上使用 WASM3。

D1 mini 是一款廉价且支持 WiFi 的 Arduino 兼容设备(见下图)

d1-mini

最终项目使用一个用 Rust 编写并编译为 WebAssembly 的程序,让 LED 灯闪烁起来。 对于任何有兴趣在嵌入式系统上使用 wasm 的人来说,这是一个很好的起点。

Lapce:一款用 Rust 编写的代码编辑器

Lapce 是一款用 Rust 编写的代码编辑器,非常酷炫,主打速度和灵活性。值得注意的是,Lapce 拥有一个基于 WebAssembly 的插件模型,你可以用 WebAssembly 和 WASI 制作Lapce的插件。

不过 Lapce 的文档目前好像还比较简陋,没有具体说明如何编写一个插件,如果有人尝试成功了,请分享一下!

PartialExecuter:通过扫描 LLVM 中的所有执行来减少 WebAssembly 的代码体积

来自 Leaning Technologies 的团队正在用 WebAssembly 创造一些非常棒棒的东西,在第164期WebAssembly周刊中,我分享了 WebVM,这是他们基于浏览器的 x86 应用程序主机,允许您通过一些非常智能的 x86-to-wasm JIT 编译来运行它们。

正如您想的那样,该团队经常使用编译器技术。在本文中,他们分享了一些巧妙的优化,可以通过 LLVM 使用部分执行来识别死代码。

碎碎念:WebAssembly 继续前行

我通常不会费心报道“分析师”的文章。它们没有错,但我更喜欢深入研究细节而不是宏观笼统的陈述。尽管如此,很高兴看到 Forrester 和 Gartner 等人仍然对 WebAssembly 抱有很大的期望。

Rust WebAssembly OCR 实验

这是一篇有趣的文章,讲述了 Hugo 使用 OCR(光学字符识别)技术来自动化将分数从 pokédex 传输到 Cyberscore 的过程。我并不知道这意味着什么,但它看起来仍然是一个有趣的项目。在这种情况下,字符是计算机渲染的并且非常一致(与手写数字相比),因此,字符识别是通过模板匹配而不是使用更复杂的神经网络方法来执行的。