為了能夠讓後面的各個實際案例能順利講解,本章節會幫大家上點簡單的 Rust 的基礎專案結構,當然 Wasm 不只有 Rust 這個程式語言支援喔!
沒錯,還是那個最熟悉的陌生人,Hello World。
Hello (專案資料夾)
|-- Cargo.toml (專案設定檔案)
|-- src (放程式碼的地方)
|-- *.rs (程式碼)
Cargo.toml
的內容我們只需要用到以下幾個常見的欄位就夠了
[package] # 套件的資訊
name = "hello" # 套件名稱
version = "0.1.0" # 套件版本
authors = ["hydai"] # 套件作者
edition = "2021" # Rust 語言標準
[[bin]] # 代表這個 Rust 程式最後會產生可執行檔案
name = "hello" # 可執行檔案的名稱
path = "src/main.rs" # 對應的程式碼路徑
# 宣告進入點
fn main() {
# println 列印並換行
println!("Hello WasmEdge from the container");
}
為了能夠編譯上面的程式碼,讀者可以選擇:
在有 Cargo.toml
的資料夾中,執行以下指令:
# 第一次執行之前,需要先啟用 wasm32-wasi 的目標平台
rustup target add wasm32-wasi
# 使用 release 模式來編譯
cargo build --release --target wasm32-wasi
# 若你需要使用 debug 模式,直接移除 `--release` 即可,如下面註解的這行
# cargo build --target wasm32-wasi
編譯好的 Wasm 檔案會位於 target/wasm32-wasi/release/hello.wasm
,若是使用 debug 模式,則會位於 target/wasm32-wasi/debug/hello.wasm
。
請注意,此處的 hello.wasm
的 hello
就是在 Cargo.toml
裡面的 [[bin]].name
。
之後每次修改完程式碼都要記得重新編譯,才能取得最新的 Wasm 檔案喔!
請將上面的範例程式碼修改成鐵人賽的三十天挑戰,預期的輸出為:
2023ironman Day 1
2023ironman Day 2
2023ironman Day 3
...
2023ironman Day 30