WebAssembly 一周一报0715

原创
2020/07/15 19:36
阅读数 212

微信不支持外链,请点击阅读原文,查看文中的资源
WebAssembly 入群请至文末
编者按:

本周,我们持续看到 WebAssembly 在服务器端崛起的例子,以及它在无服务器基础架构中的作用。与此同时,Rust得到更多的主流大公司和著名的项目采用,如微软,Facebook,甚至 Linux 内核也会加入!

WebAssembly Today


SSVM, 一个新的服务端 Wasm 虚拟机


SSVM 0.6.0 版本在可控的方式下(如:基于功能的安全性)支持 WASI 操作系统资源。除了 WASI, SSVM 还支持额外的、非标准的 WebAssembly 扩展,以安全地访问主机系统。
  • 用于附加键/值存储的存储接口
  • 用于专用硬件的 AI 推理接口
  • 用于主机区块链的以太坊接口
对 JavaScript 开发者而言, SSVM 可以轻松地将高性能Rust函数整合到Node.js应用程序中


把 WebAssembly 编译成 C


之前的简报中我们讨论了 “可移植的 C 语言” 作为安全通用二进制的想法,以及支持它的 wasm2c 工具箱。本周,我们在现实世界中看到了一个这样的实际用例!
Peter Salomonsen 写了一篇文章演示了如何将 WebAssembly 模块编译为 C 并使用它。文章中附有 WebAssembly 音乐项目的例子。非常有意思!

WebAssembly 作为 FaaS 架构的轻量级运行时


文章详细介绍了无服务器 FaaS 基础架构的三种主要方法,其中一种方法是使用特定于应用程序的虚拟机,如 WebAssembly . 这种方法正在兴起,并提供了较高层级的抽象。
WebAssembly 虚拟机可以提供用于访问系统资源的高级“基于功能”的安全模型 (例如,通过 WASI 规范) 而不是粗粒度的操作系统级隔离。
服务端的 WebAssembly 看起来潜力无限。

JavaScript vs WebAssembly


WebAssembly 会代替 JavaScript吗? 谁的性能更强大? Alex Fallenstedt 在推特上分享了他的benchmark。JavaScript 在字符串对比中更快,而 Rust + Wasm 在 arrays 中更快。
这可能是因为在浏览器设置中,字符串操作是JavaScript最常见的任务。因此,为 JavaScript 构建的 C / C ++ 运行时引擎,对字符串操作进行了超优化。对数字运算而言情况并非如此。
所以我们学到了什么呢?讨论抽象设置中的性能很难。我们必须判断实际应用场景中的性能。

用Rust 和 WebAssembly 实现机器学习


该文章介绍了如何使用 Rust crates 和服务端 WebAssembly 进行 K-clustering 和可视化。Rust 允许开发者编写 更高性能的机器学习函数 ,同时 WebAssembly/SSVM 提供了运行时安全性、代码可移植性和可管理性。


如何使用 WebAssembly 运行 scikit 学习模型?



WebAssembly 是机器学习/AI应用程序(在浏览器和服务器上)的高性能运行时。本文作者描述了他们如何为专门用于 ML 模型的 FaaS 服务构建WebAssembly 运行时。ML FaaS 中的 WebAssembly 的优点包括:
  • 易用
  • 与 Docker 容器相比,WebAssembly 模型的部署速度更快
  • WebAssembly 模型部署占用较小的内存。
  • WebAssembly 模型比 AVM 小得多。
  • WebAssembly 模型的可移植性允许它们在服务器,浏览器或 edge 上运行。
  • 安全且可验证
  • WebAssembly二进制文件使 A/B 测试变得简单

如何用 Blazor WebAssembly 实现 Azure Serverless


FreeCodeCamp 的这篇文章讲述了,如何使用 WebAssembly 在浏览器中构建富客户端应用程序,然后使用 Azure 无服务器函数为该应用程序构建后端。

Firefox 中的功能提升


Firefox 78 包括一个新的 RegExp 评估器,可以满足 ECMAScript 2018 的要求,还提升了对 WebAssembly 的支持。


Rust 新闻


Linux 内核 in-tree 支持 Rust 的讨论


在之前的周报中,我们提到了 Linux 内核可能采用和支持 Rust。之后,Linux 核心开发人员之间以电子邮件的形式进行了讨论。从他们讨论的内容,我们能大概知道 Rust 会如何得到支持。
Reddit 网友 crabbytag 做了总结:
  • Nick Desaulniers 问道 “我们应该这么做吗?” 或者“我们如何界定它使用的范围?”
  • 包括 Greg Koah-Hartmann 在内的大多数人都对参加讨论感兴趣*
  • Josh Triplett, rustc 开发者——我很高兴 Linux 内核将为 Rust 语言开发囊括为重要议程。如果在内核中构建 Rust 接口需要一些附加语言功能,我们应该查看对语言的哪些增强最能满足这些要求。
  • Linus Torvalds ——我不希望我们陷入这样的局面,即默认情况,任何新的 Rust 支持竟然没有进行过构建测试。
这一系列往来邮件已经在 Linux Rust社区 引发了海量讨论。

用 Rust 写一个超赞的 4k intro



4k intro 是用 4096 或者更少字节写一整个场景的视频模拟(包括数据)。这个 Intro 是用 Rust 和 glsl 写的。Glsl 用于在屏幕上渲染 UI,而 Rust 负责其它部分,包括世界创建、摄像头和对象控制、创建乐器和播放音乐等。查看 demo 视频吧!



微软和 Facebook 发布用 Rust 写的项目


微软发布了 Freta 项目,是一个云级别的安全漏洞扫描工具。是用 Rust 写的!
Facebook 也发布了一个内部项目,使用 Rust 构建一个基于 web 的书签工具。


从 TypeScript 转化为 Rust/WebAssembly


Boardgame Lab 团队决定将整个 Boardgame Lab 的引擎从 TypeScript 转换为Rust。原因是
  • WebAssembly 比 JavaScript 和 TypeScript 快
  • Rust 服务器更精简, Rust 比 Node.js 在同样负载下占用更小内存。


用 Rust “培育”黄金


用 Rust 编写的 Flake Growth,是一种用于模拟单晶黄金薄片从初始单个原子到微米级(即数十亿个原子)的生长的工具

Flake Growth 还有一个将 Rust 编译到 WebAssembly 的版本,以在浏览器中运行。


Serverless 新鲜事


ServerlessDays 2020 展望无服务器架构的未来


InfoQ 这篇文章报道了最近的一次ServerlessDays China 活动。无服务器计算之前是用于其他云服务的“粘合剂”,现在逐渐发展为全栈应用服务,因此,无服务器架构师逐渐变得热门。

入群请扫



本文分享自微信公众号 - WebAssembly 中文社区(webassemblywasm)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部