Linux中國

跟著我們的新指南學習開發 WebAssembly

使用 WebAssembly 開發有很多不同的方向,這取決於你已經知道的東西和你想建立的東西。

在過去的幾十年里,Web 瀏覽器作為最流行的跨平台應用經久不衰。從另一個角度看瀏覽器,它是最受歡迎的應用交付平台之一。想想你使用的所有網站,它們取代了你過去用桌面上運行的軟體進行的活動。你仍然在使用軟體,但你是通過瀏覽器來訪問它,而且是在別人的 Linux 伺服器上運行。在優化我們所有人使用的軟體的永恆努力中,軟體開發世界早在 2019 年就引入了 WebAssembly,作為通過 Web 瀏覽器運行編譯代碼的一種方式。應用的性能比以往任何時候都要好,而且可以生成 WebAssembly 編碼的語言遠不只是通常的 PHP、Python 和 JavaScript。

一個目標和一種語言

關於 WebAssembly 的一個強大但也最令人困惑的地方是,「WebAssembly」 這個詞既指一種語言,也指一個目標。WebAssembly 是一種彙編語言,但沒有多少人選擇直接用彙編寫代碼。即使是彙編語言,最終也會被轉換為二進位格式,這也是計算機運行代碼的要求。這種二進位格式也被稱為 WebAssembly。不過這很好,因為這意味著你可以用你選擇的語言來寫一些最終以 WebAssembly 交付的東西,包括 C、C++、Rust、Javascript 和其他許多語言。

進入 WebAssembly 的途徑是 Emscripten,這是一個 LLVM 編譯器工具鏈,可以從你的代碼中產生 WebAssembly。

安裝 Emscripten

要在你的 Linux 或 macOS 電腦上安裝 Emscripten,請使用 Git:

$ git clone https://github.com/emscripten-core/emsdk.git

改變目錄進入 emsdk 目錄並運行安裝命令:

$ ./emsdk install latest
$ ./emsdk activate latest

Emscripten 工具鏈中的所有內容都安裝在 emsdk 目錄下,對系統的其他部分沒有影響。由於這個原因,在使用 emsdk 之前,你必須 源引 source 它的環境:

$ source ./emsdk_env.sh

如果你打算經常使用 emsdk,你也可以在 .bashrc 中加入環境設置腳本。

要在 Windows 上安裝 Emscripten,你可以在 WSL 環境下運行 Linux。

請訪問 Emscripten 網站 了解更多安裝信息。

Hello World

下面是一個用 C++ 編寫的簡單的 「Hello World」 應用。

#include <iostream>

using namespace std;

int main() {
    cout << "Hello world";
    return 0;
}

先把它作為你的系統的標準二進位文件來測試:

$ g++ hello.cpp -o world
$ ./world
Hello world

看到它像預期的那樣工作,用 emcc 把它構建為 WebAssembly:

$ emcc hello.cpp -o world.html

最後,用 emrun 運行它:

$ emrun ./world.html

emrun 工具是一個用於本地測試的方便命令。當你在伺服器上託管你的應用時,emrun 就沒有必要了。

學習更多關於 WebAssembly 的知識

使用 WebAssembly 開發可以有很多不同的方向,這取決於你已經知道的東西和你想建立的東西。如果你了解 C 或 C++,那麼你可以用這些來寫你的項目。如果你正在學習 Rust,那麼你可以使用 Rust。甚至 Python 代碼也可以使用 Pyodide 模塊來作為 WebAssembly 運行。你有很多選擇,而且沒有錯誤的開始方式(甚至有 COBOL 到 WebAssembly 的編譯器)。如果你渴望開始使用 WebAssembly,

請下載我們免費的電子書

via: https://opensource.com/article/23/2/webassembly-guide

作者:Seth Kenlon 選題:lkxed 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國