Line在服務端 WASM的分享、用Rust和wasm實現 AI as a service-WebAssembly 週報0923

WebAssembly 週報 #19

入羣請至文末

編者按: WebAssembly 繼續蓬勃成長,有了更多語言支持、更多工具以及更多的應用案例。html

WebAssembly Today

用 Node.js寫的高性能且安全的人工智能即服務( AI as a Service) 👩

image

對於1200萬 JavaScript 開發者來講,AI as a Service 意味着在 Node.js 中運行 Tensorflow 模型。作到這點的一種方法是用在 Node.js 裏運行的 Rust 和 WebAssembly 替換 Python 本機模塊。本文將教您如何使用 Rust、 WebAssembly 和 Tensorflow 實現做爲 web 服務的人臉檢測。python

Emscripten 2.0.4 發佈,支持 Bazel 👏

Emscripten 2.0.4 本週發佈了。新性能:git

  • 是支持 Bazel 的第一個版本。
  • 中止了默認包含 mallocfree。若是您須要從 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 速度更快了 (即使沒有 AOT) 👍

image

Blazor 最近爲.NET 5發佈了一個新的候選版本(RC)。根據性能 benchmark, .NET 5 的 Blazor WebAssembly 比之前快了2-3倍。性能的提高在於核心框架庫和對.NET IL 解釋器的優化。值得一提的是,Blazor 在沒有使用 AOT 優化的狀況下實現了這樣的性能。github

Python WebAssembly Playground 🐍

使用 Python Playground 在瀏覽器中運行 Python 代碼。你的 Python 代碼將被編譯成 WebAssembly 並在瀏覽器中運行。這個在線 IDE 還支持 JavaScript 和 Go。web

WebAssembly 賦能的基於瀏覽器的 FFmpeg 視頻轉碼器 🌎

image
還記得咱們過去寫的視頻轉碼器項目嗎?該項目最近改名爲 modfy.video。它也達到了一個穩定的版本。它的新特性和改進包括如下內容。編程

  • 大幅下降數據使用量(最高25 MB)
  • 支持任何格式的視頻
  • 用 CLUI 完成模組化設計
  • 添加文檔和 API reference

Decaton 增長來自 Line 團隊的實驗性的 WebAssembly支持 📱

Line 團隊最近分享了他們在服務端 WebAssembly 的經驗。想法是支持用戶以任何語言編寫的 Decaton 處理器。WebAssembly 支持多種語言,並能使用戶代碼安全運行。後端

文章第一部分介紹瞭如何將 WebAssembly 運行時集成到 Java 應用程序中。第二部分討論瞭如何擴展 WASI 的 API 和 Rust 的標準庫來增長對 socket 的支持。瀏覽器

做者表示, 「就 WebAssembly 在瀏覽器以外的應用而言,我認爲它的前景很是光明。」安全

當咱們討論 WebAssembly 的時候咱們在討論什麼? 🤩

開發者 Peter Salomonsen 解釋了爲何他想讓 WebAssembly 專一於做爲一個計算引擎,而不是提供對整個系統(例如UI)的訪問權限---- WebAssembly 的價值定位是安全第一。在服務端使用 WebAssembly ,他提出了一個很好的觀點:WebAssembly 容許瀏覽器和服務器之間的代碼複用。服務器

用 emscripten 將一個 c + + 遊戲引擎移植到web上 🤫

Alex Dixon 討論了他如何將一個遊戲引擎移植到 web 服務器上,以在瀏覽器中運行 WebGL 遊戲。

Low-Level Academy👩‍🎓‍

Low-Level academy 將教授 Rust 和 WebAssembly 的系統編程課程。它從網絡編程開始。您將在第一節課裏學習如何使用 UDP 和 TCP 互聯網協議。

Web Assembly 一切的一切 👀

谷歌的 Martina Kraus 在 WebAssembly Live 會議上分享了一個演講,關於如何優化 WebAssembly 字節碼的大小和啓動時間。

WebAssembly in Action ✍️

WebAssembly in Action 如今能夠免費看了。點擊閱讀,學習一下什麼是WebAssembly 以及它如何運行。

Rust 新聞

Rust 2021: 下降門檻 👂

爲了讓 Rust 成長,並增長在主流開發者對 Rust 的使用,咱們必須下降學習和使用 Rust 的門檻。本文提出了一些建議。

  1. 安裝體驗不錯——還能提高嗎?
  2. 文檔還能夠——還能更好嗎?更容易被找到?例如,優秀的 Rust cookbook(教程)是否廣爲人知?它是否可以更新錯誤處理的最新建議 ?翻譯成更多的語言?
  3. 教程和學習材料是好的——它們能夠更好嗎?是否有更多針對某一特定領域的視頻教程或教程,好比嵌入式編程( embedded programming) ?
  4. 編譯器報錯還行——能夠更好嗎,就像最近的 PR 顯示的那樣?
  5. 5.編譯時間( Compile times )和 IDE 體驗已經改進——還能繼續改進嗎?咱們可否獲得一個快速的調試後端( fast debug backend ) ,以進一步提升生產力?

有什麼理由不選 Rust 🦀

Go 和 Rust 語言之間的戰爭正在升溫,好消息是 WebAssembly 全都支持!小孩子才作選擇!

Dropbox 將 protobuf codegen 開源 🚀

Dropbox 開源了 pb-jelly,一個爲 Rust 開發的 protobuf 代碼生成框架。目前 Dropbox 的幾個模塊都在使用這個軟件,包括 Sync Engine 和 Magic Pocket。

Bevy 0.2 發佈 🌅

Bevy 0.2 發佈了。咱們在以前已經介紹過這個簡單的數據驅動遊戲引擎。

新特性:

  • 異步任務系統。CPU 佔用率很是高。
  • 使用 WebAssembly 支持初始 Web 平臺。
  • 並行查詢
  • 重寫轉換系統
  • 支持遊戲手柄/遊戲鍵盤
  • 改善 Bevy ECS 的性能

科學中的Rust和不斷變化的要求 🦀

從不斷變化的需求中比較 Rust 和 Python,包括可讀性、可測試性、反饋和工具鏈。

Serverless

Serverless: 我已經不是寶寶啦 🦄

這篇文章內容豐富,咱們將從這篇文章中對無服務器有一個全面的瞭解,它包含:

  • 無服務器的概念,
  • 如何對無服務器分類,
  • 無服務器相對於虛擬機的優點,
  • 無服務器容器和無服務器函數的區別,
  • 如何擴展無服務器函數。

image

相關文章
相關標籤/搜索