編者按:html
本週,咱們持續看到 WebAssembly 在服務器端崛起的例子,以及它在無服務器基礎架構中的做用。與此同時,Rust獲得更多的主流大公司和著名的項目採用,如微軟,Facebook,甚至 Linux 內核也會加入!linux
SSVM 0.6.0 版本在可控的方式下(如:基於功能的安全性)支持 WASI 操做系統資源。除了 WASI, SSVM 還支持額外的,非標準的 WebAssembly 擴展,以安全地訪問主機系統。git
對 JavaScript 開發者而言, SSVM 能夠輕鬆地將高性能Rust函數整合到Node.js應用程序中.github
以前的簡報中咱們討論了 「可移植的 C 語言」 做爲安全通用二進制的想法,以及支持它的 wasm2c 工具箱。本週,咱們在現實世界中看到了一個這樣的實際用例!web
Peter Salomonsen 寫了一篇文章演示瞭如何將 WebAssembly 模塊編譯爲 C 並使用它。文章中附有 WebAssembly 音樂項目的例子。很是有意思!typescript
文章詳細介紹了無服務器 FaaS 基礎架構的三種主要方法,其中一種方法是使用特定於應用程序的虛擬機,如 WebAssembly. 這種方法正在興起,並提供了較高層級的抽象。後端
WebAssembly 虛擬機能夠提供用於訪問系統資源的高級「基於功能」的安全模型 (例如,經過 WASI 規範) 而不是粗粒度的操做系統級隔離。服務器端的 WebAssembly 看起來潛力無限。瀏覽器
WebAssembly 會代替 JavaScript嗎? 誰的性能更強大? Alex Fallenstedt 在推特上分享了他的benchmark。JavaScript 在字符串對比中更快,而 Rust + Wasm 在 arrays 中更快。安全
這多是由於在瀏覽器設置中,字符串操做是JavaScript最多見的任務。所以,爲 JavaScript 構建的 C / C ++ 運行時引擎,對字符串操做進行了超優化。對數字運算而言狀況並不是如此。服務器
因此咱們學到了什麼呢?討論抽象設置中的性能很難。咱們必須判斷實際應用場景中的性能。
該文章介紹瞭如何使用 Rust crates 和服務端 WebAssembly 進行 K-clustering 和可視化。Rust 容許開發者編寫更高性能的機器學習函數,同時 WebAssembly/SSVM 提供了運行時安全性、代碼可移植性和可管理性。
WebAssembly 是機器學習/AI應用程序(在瀏覽器和服務器上)的高性能運行時。本文做者描述了他們如何爲專門用於 ML 模型的 FaaS 服務構建WebAssembly 運行時。 ML FaaS 中的 WebAssembly 的優勢包括:
FreeCodeCamp 的這篇文章講述了,如何使用 WebAssembly 在瀏覽器中構建富客戶端應用程序,而後使用 Azure 無服務器函數爲該應用程序構建後端
Firefox 78 包括一個新的 RegExp 評估器,能夠知足 ECMAScript 2018 的要求,還提高了對 WebAssembly 的支持。
在咱們上週的簡報中咱們提到了 Linux 內核可能採用和支持 Rust。以後,Linux 核心開發人員之間以電子郵件的形式進行了討論。從他們討論的內容,咱們能大概知道 Rust 會如何獲得支持。 Reddit 網友 crabbytag 發帖爲網友作了總結:
這一系列往來郵件已經在 Linux 和 Rust社區引起了海量討論。
4k intro 是用 4096 或者更少字節寫一整個場景的視頻模擬(包括數據)。 這個 Intro 是用 Rust 和 glsl 寫的。 Glsl 用於在屏幕上渲染 UI,而 Rust 負責其它部分,包括世界建立、攝像頭和對象控制、建立樂器和播放音樂等。 查看 demo 視頻吧!
微軟發佈了 Freta 項目,是一個雲級別的安全漏洞掃描工具。是用 Rust 寫的!
Facebook 發佈了一個內部項目,使用 Rust 構建一個基於 web 的書籤工具。
Boardgame Lab 團隊決定將整個 Boardgame Lab 的引擎從 TypeScript 轉換爲Rust。 緣由是
用 Rust 編寫的 Flake Growth,是一種用於模擬單晶黃金薄片從初始單個原子到微米級(即數十億個原子)的生長的工具。
Flake Growth 還有一個將 Rust 編譯到 WebAssembly 的版本,以在瀏覽器中運行。
InfoQ 這篇文章報道了最近的一次ServerlessDays China 活動。 無服務器計算以前是用於其餘雲服務的「粘合劑」,如今逐漸發展爲全棧應用服務,所以,無服務器架構師逐漸變得熱門。
WebAssembly 中文羣,請掃碼加入