WebAssembly 一周一报0715

编者按:html

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

WebAssembly Today

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

SSVM 0.6.0 版本在可控的方式下(如:基于功能的安全性)支持 WASI 操做系统资源。除了 WASI, SSVM 还支持额外的,非标准的 WebAssembly 扩展,以安全地访问主机系统。git

  • 用于附加键/值存储的存储接口,
  • 用于专用硬件的 AI 推理接口,
  • 用于主机区块链的以太坊接口,

对 JavaScript 开发者而言, SSVM 能够轻松地将高性能Rust函数整合到Node.js应用程序中.github

把 WebAssembly 编译成 C

WASM C.png

以前的简报中咱们讨论了 “可移植的 C 语言” 做为安全通用二进制的想法,以及支持它的 wasm2c 工具箱。本周,咱们在现实世界中看到了一个这样的实际用例!web

Peter Salomonsen 写了一篇文章演示了如何将 WebAssembly 模块编译为 C 并使用它。文章中附有 WebAssembly 音乐项目的例子。很是有意思!typescript

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

文章详细介绍了无服务器 FaaS 基础架构的三种主要方法,其中一种方法是使用特定于应用程序的虚拟机,如 WebAssembly. 这种方法正在兴起,并提供了较高层级的抽象。后端

WebAssembly 虚拟机能够提供用于访问系统资源的高级“基于功能”的安全模型 (例如,经过 WASI 规范) 而不是粗粒度的操做系统级隔离。服务器端的 WebAssembly 看起来潜力无限。浏览器

JavaScript vs WebAssembly

JS wasm.jpeg

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 学习模型?

performance-rust-wasm-01.png

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 支持居然没有进行过构建测试。

这一系列往来邮件已经在 LinuxRust社区引起了海量讨论。

用 Rust 写一个超赞的 4k intro

WX20200715-190126@2x.png

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 “培育”黄金

flake_growth_animation-optimized.gif

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

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

Serverless 世界

Serverless Days 2020 展望无服务器架构的将来

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

WebAssembly 中文群,请扫码加入

Wasm 中文群.jpeg

相关文章
相关标签/搜索