Skip to main content

WebAssembly周刊-第172期

📣 2022年 WebAssembly 现状调查 📣

我想调查大家对 WebAssembly 及其生态系统的看法,请抽出5分钟的时间填写这份简单的问卷:

https://forms.gle/zXBZm76fz9DxtL76A

如果你对去年的结果感兴趣,请查看此篇博客文章

基于 Golang 的 WebAssembly 快速上手

这篇文章的作者是 Discoblock 的项目成员,Discoblocks 是一个在 Kubernetes 中管理持久存储的解决方案,云盘资源的 CRUD 操作,例如亚马逊的 EBS(弹性块存储)。Discoblocks 以插件的形式支持云盘变体的验证器,然而Discoblocks 是用 Go 编写的,Go 是一种编译语言,添加新的验证器需要重新编译整个二进制文件。

这时候 WebAssembly 就大大发挥作用了,这篇文章描述了他们如何使用 TinyGo 编译器构建 WebAssembly 模块,这些模块被动态加载到 wasmer-go 运行时中。这是一个 WebAssembly 被用作插件模型的很好的例子。

Wazero

Wazero 是一个新发布的“面向 Golang 开发者的零依赖 WebAssembly 运行时”,该项目的目标是保持运行时和基于 Golang 的 WebAssembly 模块轻量化。

WASI 网络: 迈向 World Wide WebAssembly

网络 API 可能是最受期待的 WASI API,如果没有它,WASI 和服务器端 WebAssembly 能做的事情就非常有限。 好消息是 WASI 的网络 API 正在取得进展!

WASI networking

这篇演讲探讨了 WASI 网络的当前状态,并涵盖了 sock_accept() 的最新实现。他们还讨论了构建完整网络 API 的后续步骤以及支持网络的 WebAssembly 应用程序的未来前景,包括一些有关部署网络身份和安全性的注意事项。

Trunk - Rust/Wasm 打包器

与将 Rust 或 Go 编译到二进制文件相比,WebAssembly 生态系统仍然相当不成熟。Trunk希望通过创建一个使用 Rust 构建 WebAssembly 应用程序的一体化解决方案来解决这个问题。

Vosk Browser

Vosk 是一个离线语音识别 API,支持多种语言和设备,其核心部分是用 C++ 编写的。Vosk Browser 使用 Emscripten 将底层语音识别引擎编译为 WebAssembly 模块,并将该 WebAssembly 模块包装在 JavaScript API 中。