Hippo如何進入WebAssembly?一文教會你
導讀 | WebAssembly 是一項非常有前途的新技術,微軟的雲原生計算團隊對其 Deis Labs 子公司和 Azure 都非常感興趣。隨著新的 WebAssembly 工具迅速出現,您需要一個可以試用它們的環境。 |
WebAssembly 是一項非常有前途的新技術,微軟的雲原生計算團隊對其 Deis Labs 子公司和 Azure 都非常感興趣。隨著新的 WebAssembly 工具迅速出現,您需要一個可以試用它們的環境。
這就是為什麼 Deis Labs 釋出其 新的 Hippo WebAssembly 平臺 如此重要的原因。就像 Deis 的許多工具一樣,它是一種快速安裝、管理和執行WebAssembly (WASM) 程式碼的方式,無論是瀏覽器託管還是獨立的 WebAssembly 系統介面 (WASI)。
將其內建通道與 Git 伺服器結合使用,您可以在一個環境中製作和部署不同的版本,將生產、暫存和開發構建分開,同時仍然只需要一臺 Hippo 伺服器。
您可以在 Hippo 中託管多個應用程式。WebAssembly 意味著預設情況下它們是沙盒的,需要明確的許可權才能訪問主機系統或外部裝置。
您的程式碼也是可移植的。
一旦為 WebAssembly 編譯,它將在任何 WebAssembly 系統上執行,無論是 Windows、 或 macOS,還是 Intel、RISC-V 或 ARM。Hippo 為您提供了一種構建一次、測試一次並在任何地方執行程式碼的方法。
儘管像 Hippo 這樣的工具非常適合雲原生操作,但當前的開發人員版本僅在桌面系統上進行了測試。我決定在執行最新版本的 WSL2 並託管 Ubuntu 的 Windows PC 上試用它。Deis 提供了在本地執行 Hippo 的說明,以及macOS 和 Linux 系統的詳細資訊。
在 WSL2 Ubuntu 20.04 LTS 系統上獲得執行 Hippo 的先決條件存在一些問題。首先,我需要安裝 WAGI,即 WebAssembly 應用程式閘道器介面。這很容易安裝,在其 GitHub 儲存庫中託管的可下載 tarfile 中有一個二進位制檔案。一旦下載、解壓並移動到使用者二進位制目錄,它就可以輕鬆執行。我藉此機會安裝了 Rust,因為如果我必須重新編譯任何 Deis 工具,我可能需要它。
這一步可能是 WSL2 上最困難的,因為它需要一份 build-essential 工具包的副本。Ubuntu 20.04 沒有正確的依賴集,所以我需要一個替代的包安裝程式,它允許我將某些關鍵庫降級到適當的版本。Stack Overflow 的回答向我指出 aptitude,這是 apt 的替代品,它允許您為安裝選擇適當的依賴項並允許它替換兩個低階 C 庫。我終於使用它的安裝 安裝了 build-essential,為 Rust 做好準備。
將 Rust 安裝為 Hippo 安裝的一部分的主要原因是為了Deis 的 WebAssembly 打包工具Bindle。Bindle 被描述為“聚合物件儲存”系統。它的文件使用的比喻是“Binder 是數字銀器抽屜”。我們的銀器抽屜裡可能都有一些不同的物品,但我們都使用抽屜來分類和存放銀器。Bindle 對構成現代應用程式的工件做了很多相同的事情,同時根據應用程式的使用方式和使用位置,提供了對應用程式如何組合的一定程度的理解。
您可以擁有一個應用程式的 Bindle 描述,其中包含在資源受限的邊緣主機(如 Raspberry Pi)上進行稀疏安裝以及位於公共雲核心的高效能伺服器所需的元素。應用程式主機中的 Bindle 客戶端可以獲取元素和依賴項並適當地部署它們。結果是一個以應用程式為中心的部署模型,它避免了使用儲存庫和智慧描述將正確的程式碼交付到正確的環境的多次構建。
安裝 Bindle 後,您可以執行它,使用預設設定設定本地 Bindle 伺服器以供 Hippo 使用。接下來,我安裝了Node.js的,使用由微軟提供的WSL說明。這需要使用 curl 下載 nvm,然後執行它以安裝最新和長期支援的 node.js 版本。不要使用 Ubuntu 說明來安裝節點;他們使用 snap 來安裝它,並且在 WSL2 中並沒有很好地支援 snap。
您需要為任何 Hippo 託管的 Rust WebAssembly 應用程式安裝 Rust 的 wasm32-wasi 支援,以及 yo-wasm Yeoman 應用程式腳手架工具。這將允許您將 Rust 程式碼編譯為 WASI 目標,準備在 Hippo 中執行。
有了這些,我現在可以安裝 .NET 5,在安裝 .NET 5 SDK 和執行時之前,首先設定對 Microsoft 的 Debian 包儲存庫的支援。.NET 執行時有 兩種選擇:一種支援 ASP.NET Core,另一種不支援。由於 Hippo 是一個模型-檢視-控制器 Web 應用程式,您應該使用 ASP.NET 版本的執行時。
一旦安裝了所有先決條件,您就可以構建 Hippo。首先將 Hippo GitHub 儲存庫克隆到 WSL 系統的本地目錄中。安裝後,您可以構建和執行該應用程式,透過新增 BINDLE_URL 環境變數將其指向您的本地 Bindle 伺服器。此時最好安裝 Hippo 的 CLI,因為它是應用程式開發和部署所必需的。
您現在可以連線到您的 Hippo 伺服器以測試它是否正常工作。您應該在 localhost 的 5001 埠上找到它。如果您正在執行 WSL 2 的最新版本,您應該能夠使用 localhost 從 Windows 桌面瀏覽器連線到它,因為 Microsoft 終於修復了 WSL 2 的一個長期存在的問題網路問題,透過 Windows 代理其虛擬機器網路,同時仍保留其自己的 IP 地址和虛擬網路交換機。不再需要 來提取和共享網路地址。
在連線到伺服器之前,您需要註冊一個帳戶。由於它在本地執行,您可以選擇您喜歡的任何帳戶詳細資訊;只要確保它們是您能記住的東西,因為您需要詳細資訊來構建您的第一個應用程式。建立帳戶後,登入。您將被帶到帶有“建立新應用程式”按鈕的“您的應用程式”頁面。
雖然您可以從 Web UI 為 Hippo 構建應用程式,但現在使用 行更容易。確保您已安裝 Hippo CLI,因為 Yeoman 將使用它為您構建應用程式腳手架。在開始之前,為您的 Hippo 帳戶和密碼及其端點設定環境變數。是的,這不是很好的安全實踐,但在這裡我們只是使用尚未準備好用於生產的軟體在隔離的 PC 上構建和執行測試程式碼。
要構建一個基本的 hello world 應用程式,請使用 yo-wasm 工具構建一個 WebAssembly Rust 應用程式。如果您按照指令碼操作並輸入適當的值,這將構建原始碼並將其載入到您的 Hippo 伺服器中。
接下來使用 Rust 貨物工具來編譯和測試您的 WASI 應用程式。在 行上執行它後,您可以使用 Hippo 的 CLI 工具將其推送到 Bindle,在那裡它將在 Hippo 中可見。開啟專案,選擇您構建的開發環境,然後單擊連結以執行您的程式碼。
河馬有很多值得喜歡的地方。如果 WebAssembly 缺少一件事,它是一個有效的類似 Heroku 的遊樂場,可以幫助您入門。Hippo 可能還不是那個遊樂場,但它肯定是您現在可以將其用作您自己的開發工作流程的一部分,即使在其早期階段也是如此。
能夠在開發 PC 上執行它是一個額外的優勢,因為不需要依賴第三方系統。它的影響足夠低,可以作為 WSL 2 環境的一部分執行,因此您可以利用 Visual Studio Code 等工具,使用其遠端開發功能從 Windows 編輯 WSL 中的 Rust 程式碼。
如果您對 WebAssembly 感興趣,Hippo 很可能是您入門所需的工具。它使使用 WebAssembly 程式碼變得更簡單,將執行開發所需的許多不同部分集中到一個地方。儘管它顯然仍然是一個早期版本,但這裡有足夠的內容讓您入門,使其成為任何使用 WebAssembly 的人的必備工具。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2852450/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 一文教會你如何寫複雜業務程式碼
- 一文教會你認識Vuex狀態機Vue
- 一文教會你mock(Mockito和PowerMock雙劍合璧)Mockito
- 一文教會你用資料探勘看全國兩會“熱詞”
- 什麼是安全測試?一文教會你如何開展系統安全測試…
- 谷歌:如何以最高效的方式載入 WebAssembly谷歌Web
- [譯][A crash course in WebAssembly] WebAssembly的進度和計劃Web
- 一文教會你如何在內網搭建一套屬於自己小組的線上 API 文件?內網API
- 你會如何改進這個演算法?演算法
- [WebAssembly 入門] Hello, world!Web
- 如果想進入一家大公司面試,你會怎麼做?面試
- Win10系統如何進入高階啟動模式_win10進入高階啟動模式的圖文教程Win10模式
- 我來告訴你,一個草根程式設計師如何進入BAT程式設計師BAT
- WebAssembly入門,未來可期Web
- JavaScript與WebAssembly進行比較JavaScriptWeb
- 每天寫一條部落格,你就會進步
- [WebAssembly 入門] 與 Webpack 聯動Web
- 你們想過未來自己會進入養老院嗎?
- 全圖文教你Chrome瀏覽器如何加入brupsuite新增ssl證書(一看就會)Chrome瀏覽器UI
- win10系統怎麼進入高階選項【圖文教程】Win10
- HyperparameterHunter 3.0:一文教你學會自動化特徵工程特徵工程
- Idea+Git+GitHub圖文教程,一篇教程幫你搞定IdeaGithub
- 如何進行高效會議
- 一文教你如何呼叫Ascend C運算元
- 一文教你如何重新認識使用者
- 新入職一家公司如何快速進入工作狀態
- 爬蟲入門經典(五) | 簡單一文教你如何爬取高德地圖爬蟲地圖
- webAssemblyWeb
- gitlab 如何進入控制檯Gitlab
- 一文教你如何快速實現聲音識別
- Blazor WebAssembly 3.2.0 正式起飛,blazor 適合你嗎?BlazorWeb
- 一步教會你如何獲取1688商品詳情
- [WebAssembly 入門] 實現數獨遊戲 - 如何優雅的組織Rust程式碼Web遊戲Rust
- 如何在 Blazor WebAssembly中 使用 功能開關BlazorWeb
- shiro 什麼時候會進入 doGetAuthorizationInfo() ?
- [WebAssembly 入門] 第二次的 Hello, world!Web
- 實戰Forge Viewer漸進應用 - 當Xamarin遇上WebAssemblyViewWeb
- Python進階丨如何建立你的第一個Python元類?Python