编者按:
本周,咱们继续看到 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 世界
Serverless Days 2020 瞻望无服务器架构的将来
InfoQ 这篇文章报道了最近的一次 ServerlessDays China 流动。无服务器计算之前是用于其余云服务的“粘合剂”,当初逐步倒退为全栈应用服务,因而,无服务器架构师逐步变得热门。
WebAssembly 中文群,请扫码退出