WebAssembly 時代,Rust 也想成為 Web 語言

2020-11-25 開源中國

目前 Mozilla 正在基於 WebAssembly 可移植代碼格式研發 JavaScript 和 Rust 之間的橋梁——wasm-bindgen,意義是提高 JavaScript 和 Rust 之間的互操作性。Mozilla 這麼做是想讓 Rust 成為類似 JavaScript 的 Web 語言,讓它能夠與 Web 應用中的 WebAssembly 和 JavaScript 一起使用。

Wasm-bindgen 提供 WebAssembly(wasm) 模塊和 JavaScript 之間的高級別交互。使用 wasm-bindgen,JavaScript 和 WebAssembly 之前不僅可以通過整形和浮點型進行通信,還可以使用字符串、JavaScript 對象和類進行。

wasm-bindgen 的高級功能包括:

目前,WebAssembly 僅支持四種類型:兩種整型和兩種浮點型。但 JavaScript 和 Rust 開發人員經常使用更豐富的類型,例如 Rust 開發人員使用 Result 類型進行錯誤處理,這樣,使用 wasm-bindgen 的時候,JavaScript 可以使用字符串或 Rust 函數調用 Rust API 來捕獲 JavaScript 異常。通過消除 WebAssembly 和 JavaScript 之間的不匹配問題,JavaScript 可以調用 WebAssembly 函數,而反過來, WebAssembly 可以也對 JavaScript 函數執行相同的操作。

基於 ECMAScript 模塊,wasm-bindgen 專注於 Rust,但其目的也是最終用於 C 和 C ++ 等語言。但 Mozilla 稱 wasm-bindgen 目前還不夠穩定,暫時還無法擴展到其它語言。

Rust 社區的一大目標是讓 Rust 成為 Web 語言。通過對標 WebAssembly,Rust 可以像 JavaScript 一樣成為一種可以在網絡上運行的語言。但 Mozilla 指出,它並沒有試圖用 Rust 取代 JavaScript。它不希望 Rust WebAssembly 應用程式完全用 Rust 編寫,相反,大部分應用程式代碼仍然使用 JavaScript。Rust 和 WebAssembly 將分別用於應用程式的特定部分,例如解析源映射或確定對 DOM 做了哪些更改。

可以從GitHub下載 wasm-bindgen。

來源:InfoWorld

相關焦點

  • 如何使用WebAssembly將命令行JSON處理工具JQ移植到瀏覽器?
    Aboukhalil 詳細介紹了 jq 向 WebAssembly 移植的步驟:https://opensource.com/article/19/4/command-line-playgrounds-webassembly
  • web時代的權力演化
    而web 是world wide web(全球資訊網)的簡稱,不是縮寫,全球資訊網是基於http協議進行交互的應用網絡。也就是說,web是運行於網際網路之上的系統。進一步說,網際網路是針對的計算機(點到點),web是針對的計算機上的應用(端到端)。以前,web可以說就是通過使用瀏覽器訪問的各種資源,這是Web1.0時代。
  • Azure 靜態 web 應用集成 Azure 函數 API
    前幾次我們演示了如何通過Azure靜態web應用功能發布vue跟blazor的項目(使用 Azure靜態web應用+Github全自動部署VUE站點、使用Azure靜態Web應用部署Blazor Webassembly應用)。
  • 武漢Python Web全棧開發工程師修煉價格_web前端開發培訓哪家好...
    【課程介紹】課程以python語言為主導,進行web服務相關的全棧開發,包含後端伺服器開發,部署,監控;web前端開發,前後端不分離模板模式開發,前後端分離,單獨前端部署方案。在web項目以外的定時任務讓學員對非web項目有一個基本的了解。
  • Web1.0與Web2.0和Web3.0的本質區別是什麼
    到用戶直接交互的web2.0,再到用戶自主控制數據的web3.0。經過十多年的發展,web2.0的已經極大豐富。而web3.0才剛剛露出尖尖角,它以區塊鏈和加密貨幣為重要基礎,引導網際網路走向個人控制數據所有權,並實現個人隱私。但向真正走向web3.0,並非坦途,web2.0經過十多年的發展,由全世界如此眾多的聰明人不斷改進才取得今日的成就,而web3.0要成為主流採用的網絡,所需的時間也不可能短。
  • Web前端是做什麼的?
    Web前端的發展是從網頁製作演變而來的,其名稱具有明顯的時代特徵。網際網路的演化過程中,網頁製作是Web1.0時代的產物,當網站的主要內容是靜態的時候,用戶使用網站的行為多數也只是瀏覽。自2005年網際網路進入Web2.0時代以來,出現了大量類似桌面軟體的Web應用,網站前端發生了翻天覆地的變化,網頁不再僅僅承載單一的文字和圖片,各種豐富的媒體使網頁內容更加生動,網頁上的軟體交互為用戶提供了更好的使用體驗,這些都是基於前端技術的。web前端的開發涉及廣泛的領域,還有很多需要學習的地方。
  • Web前端的就業前景如何
    前端Web開發人員主要使用:HTML、CSS、JavaScript三種編程碼語言。來編寫由Web設計人員創建的網站和Web應用程式設計,從HTML5前端技術學習全過程,全面掌握頁面兼容性與優化,學習優化前端體驗和頁面響應速度,優化代碼,保持良好的兼容性,提高網絡界面的友好性和易用性。
  • 曾經的迷茫,WEB前端是做什麼的?
    相信不少的人都有過迷惑,web前端是做什麼的?什麼時候開始有了web前端的這個概念?不知何時,不管是web前端行業的從業者,還是非從業者,都對web前端產生了濃厚的興趣。web前端開發如果你經歷過痛苦的IE6時代,如果你現在還在做網頁開發,也許這一切不用解釋
  • 區塊鏈是連接Web2.0與Web3.0橋梁的重要基石
    而作為信息危機的代表人物,斯諾登也為所有人敲響了信息安全的警鐘,所以,Web3.0也被稱作「後斯諾登」時代,它包含四個組件:靜態內容發布、動態消息、去信任交易和集成的用戶界面。這樣對應了Gavin Wood提出Web3.0的三個目標:應該讓每個網際網路用戶能夠去控制自己的資產、身份和數據。
  • 開啟後地圖時代:百度地圖web無線雙向領先
    2月1日,國家測繪地理信息局正式印發了《關於進一步加強網際網路地圖服務資質管理工作的通知》,151家網際網路單位獲得了甲級網際網路地圖服務測繪資質證書,這也意味著紛紛擾擾的地圖牌照之爭塵埃落地,後地圖時代正式開啟。
  • 谷歌力推WebAssembly,要幹掉JS?
    2、一站式應用商店,為現有的web應用程式充電。  3、完全替代本機應用程式。  很多程式設計師都知道WebAssembly很快,那它到底有多快呢?  用WASM進行開發  WASM工具非常新,C ++和Rust是迄今為止所看到的唯一兩個支持的語言。  構建工具  雖然工具很新但很好用,只是最初設置Emscripten編譯器階段有一點困難,程式設計師可使用與標準GCC編譯非常相似的命令編譯WASM命令。
  • 令人激動的新興 Web 技術:WebGL和SVG
    【IT168 技術】Bruce Lowson 是 Opera 開放 web 標準的撰寫人員之一,一些沒有包含在 HTML5 之內的瀏覽器技術十分奇妙,包括 WebGL 和 SVG,作者希望通過本文與共同愛好者們分享。
  • web前端開發是做什麼的?零基礎該怎麼學習
    假如大學畢業工作不如意,想轉行,這個時候最好出路已經是學習,學習一門有前景的技術。本文我們將為大家介紹一下web前端開發。web前端開發是做什麼的?從狹義上講,web前端工程師主要使用HTML、CSS、JavaScript等專業技能和工具將產品UI設計稿實現成網站產品,涵蓋用戶PC端、移動端網頁,處理視覺和交互問題。
  • 如何配置web伺服器
    如何配置web伺服器?在伺服器上配置Web服務,首先需要安裝網絡環境,然後上傳web項目文件,在配置web服務時,有一些安全策略也要注意。1 啟用日誌記錄功能Web伺服器應配置日誌功能,對用戶登錄進行記錄,記錄內容包括用戶登錄使用的帳號、登錄是否成功、登錄時間以及遠程登錄時用戶使用的IP位址。
  • web前端開發常用工具有哪些
    下面為大家介紹一些常用的web前端開發工具:1、BootstrapBootstrap 是快速開發 Web 應用程式的前端工具包。它是一個 CSS 和HTML 的集合,它使用了最新的瀏覽器技術,給你的 Web 開發提供了時尚的版式,表單,buttons,表格,網格系統等等。
  • 從社區馬斯洛五種需求看web2.0應用與發展
    除了這些色情內容,惡搞、作秀也是網絡個人傳播的重要內容,「一個饅頭引發的血案」之後,《閃閃的紅星》、《神話》、《滿城盡帶黃金甲》等等電影都成為惡搞對象。總之用戶無罪,流量無罪。而web1.0和web2.0的兩個發展階段也恰恰印證了五種需要的兩級發展趨勢。
  • 推薦14款開源的Web應用測試工具
    Selenium-RC是selenium-remote control縮寫,是使用具體的語言來編寫測試類。selenium-rc支持的語言非常多,這裡我們著重關注java的方式。這裡講的也主要是selenium-rc,因為個人還是喜歡這種方式.
  • 原生APP和web應用APP有什麼不一樣?他們都有哪些優缺點
    那麼對於應用開發來選擇的話是選擇原生應用還是選擇web應用?原生應用的開發成本是大於web應用的成本。安卓官方給定的安卓開發語言是java,而web應用的開發沒有語言限制,你可以是java,python,php,asp,aspx等等主流的文語言都可以。而相對於原生應用web應用所需要的費用會大大降低,而許多webapp基本上就是一個網站打包成應用的模式。所以費用相對來低。2、性能方面。
  • Apache和IIS及nginx三大web伺服器,新手站長該如何選擇?
    網站上線時第一件事就是搭建運行環境,首先要選擇的就在伺服器上使用哪一個web伺服器,現在win系統默認自帶IIS而Linux則自帶Apache,如果需要使用nginx則需要單獨安裝。困擾新手站長的就是web服務到底該使用哪一個,目前流行的3大web伺服器有哪些優劣請看使用經驗。
  • web前端需要學習什麼?初級階段都要學什麼?
    網絡看到了很多詢問貼子,web前端需要學習什麼?自學要多久?要學習哪些技術?初級階段都要學習什麼?有什麼要求……也有很多朋友在網絡上自學的,也有參加網絡教學的,或者在去一些培訓學校參加培訓Web前端的,都會關心一個「web前端需要學習什麼」?