入羣請至文末
編者按: WebAssembly 繼續蓬勃成長,有了更多語言支持、更多工具以及更多的應用案例。html
對於1200萬 JavaScript 開發者來講,AI as a Service 意味着在 Node.js 中運行 Tensorflow 模型。作到這點的一種方法是用在 Node.js 裏運行的 Rust 和 WebAssembly 替換 Python 本機模塊。本文將教您如何使用 Rust、 WebAssembly 和 Tensorflow 實現做爲 web 服務的人臉檢測。python
Emscripten 2.0.4 本週發佈了。新性能:git
malloc
和 free
。若是您須要從 JS 訪問它們,則必須使用 -s EXPORTED_FUNCTIONS=['_malloc', ..]
手動導出。-O1
中運行 Binaryen 優化。這使得 -O1
構建得稍微大一些,可是它們編譯得更快,這在「有妥協的」構建(在-O0
和適合發佈構建的更高優化級別兩者之間)中更有意義。ERROR_ON_WASM_CHANGES_AFTER_LINK
選項,若是鏈接後咱們須要在 wasm-emscripten-finalize
或者 wasm-opt
中執行任何工做,則添加 ERROR on wasm changes after _ link 選項。這能夠驗證連接是達到最快速度,也不作 DWARF 重寫。
Blazor 最近爲.NET 5發佈了一個新的候選版本(RC)。根據性能 benchmark, .NET 5 的 Blazor WebAssembly 比之前快了2-3倍。性能的提高在於核心框架庫和對.NET IL 解釋器的優化。值得一提的是,Blazor 在沒有使用 AOT 優化的狀況下實現了這樣的性能。github
使用 Python Playground 在瀏覽器中運行 Python 代碼。你的 Python 代碼將被編譯成 WebAssembly 並在瀏覽器中運行。這個在線 IDE 還支持 JavaScript 和 Go。web
還記得咱們過去寫的視頻轉碼器項目嗎?該項目最近改名爲 modfy.video。它也達到了一個穩定的版本。它的新特性和改進包括如下內容。編程
Line 團隊最近分享了他們在服務端 WebAssembly 的經驗。想法是支持用戶以任何語言編寫的 Decaton 處理器。WebAssembly 支持多種語言,並能使用戶代碼安全運行。後端
文章第一部分介紹瞭如何將 WebAssembly 運行時集成到 Java 應用程序中。第二部分討論瞭如何擴展 WASI 的 API 和 Rust 的標準庫來增長對 socket 的支持。瀏覽器
做者表示, 「就 WebAssembly 在瀏覽器以外的應用而言,我認爲它的前景很是光明。」安全
開發者 Peter Salomonsen 解釋了爲何他想讓 WebAssembly 專一於做爲一個計算引擎,而不是提供對整個系統(例如UI)的訪問權限---- WebAssembly 的價值定位是安全第一。在服務端使用 WebAssembly ,他提出了一個很好的觀點:WebAssembly 容許瀏覽器和服務器之間的代碼複用。服務器
Alex Dixon 討論了他如何將一個遊戲引擎移植到 web 服務器上,以在瀏覽器中運行 WebGL 遊戲。
Low-Level academy 將教授 Rust 和 WebAssembly 的系統編程課程。它從網絡編程開始。您將在第一節課裏學習如何使用 UDP 和 TCP 互聯網協議。
谷歌的 Martina Kraus 在 WebAssembly Live 會議上分享了一個演講,關於如何優化 WebAssembly 字節碼的大小和啓動時間。
WebAssembly in Action 如今能夠免費看了。點擊閱讀,學習一下什麼是WebAssembly 以及它如何運行。
爲了讓 Rust 成長,並增長在主流開發者對 Rust 的使用,咱們必須下降學習和使用 Rust 的門檻。本文提出了一些建議。
Go 和 Rust 語言之間的戰爭正在升溫,好消息是 WebAssembly 全都支持!小孩子才作選擇!
Dropbox 開源了 pb-jelly
,一個爲 Rust 開發的 protobuf 代碼生成框架。目前 Dropbox 的幾個模塊都在使用這個軟件,包括 Sync Engine 和 Magic Pocket。
Bevy 0.2 發佈了。咱們在以前已經介紹過這個簡單的數據驅動遊戲引擎。
新特性:
從不斷變化的需求中比較 Rust 和 Python,包括可讀性、可測試性、反饋和工具鏈。
這篇文章內容豐富,咱們將從這篇文章中對無服務器有一個全面的瞭解,它包含: