Bygga och köra WASI-moduler
Kompilera Rust-kod för WASI och kör dina WebAssembly-moduler i olika WASI-runtimes
Bygga och köra WASI-moduler är en gratis lektion i WebAssembly (WASM) för högpresterande appar på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för WebAssembly (WASM) för högpresterande appar, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i WebAssembly (WASM) för högpresterande appar innehåller totalt 4 lektioner.
Bygga WASI-moduler
Välkomna tillbaka! I den föregående lektionen lärde vi oss vad WASI är och vilka mål tekniken har. Nu blir det praktiskt.
Den här lektionen fokuserar på att kompilera Rust-kod för WASI och därefter köra Era WebAssembly-moduler i olika WASI-runtime-miljöer.
Rust för WASI-utveckling
Rust är ett utmärkt språk för WASI-utveckling tack vare prestandan, säkerhetsfunktionerna och det starka stödet för WebAssembly. För att komma i gång behöver Ni:
- Rust Toolchain: Installera den via
rustupom Ni inte redan har gjort det. - WASI Target: Lägga till det specifika kompileringsmålet för WASI.
rustup install stable
rustup target add wasm32-wasiKonfigurera ett WASI-projekt
Vi använder Cargo, Rusts officiella pakethanterare och byggsystem, för att skapa ett nytt projekt. Det konfigurerar den grundläggande katalogstrukturen.
cargo new my-wasi-app
cd my-wasi-appVårt första WASI-program
Vi skriver ett enkelt Rust-program. I WASI hanteras grundläggande I/O-operationer, som att skriva ut till konsolen, via WASI API. Öppna src/main.rs och lägg till den här koden:
fn main() {
println!("Hello from WASI!");
}WASI:s roll vid I/O
När Ni använder println! i ett vanligt Rust-program interagerar det direkt med operativsystemet. För WASI fungerar det lite annorlunda.
- WASM-modulen är sandboxad.
- Anrop till
println!dirigeras via WASI API. - WASI tillhandahåller ett standardiserat gränssnitt för grundläggande systemfunktioner som konsolutskrift, filåtkomst och miljövariabler.
Kompilera till WASI
Nu kompilerar vi vår Rust-kod till en WebAssembly-modul specifikt för WASI-targeten. Det här kommandot instruerar Cargo att använda targeten wasm32-wasi som vi lade till tidigare.
cargo build --target wasm32-wasiResultatet av WASM-modulen
Efter en lyckad kompilering hittar Ni Er WASI WebAssembly-modul. Det är en fristående binärfil som är klar att köras!
Leta i katalogen target/wasm32-wasi/debug/ efter en fil med namnet my-wasi-app.wasm. Det här är Er kompilerade WASI-modul.
Köra med Wasmtime
För att köra en WASI-modul behöver Ni en WASI-runtime. Wasmtime är en populär och högpresterande runtime som är utformad för detta.
- Installera Wasmtime: Följ instruktionerna på
wasmtime.devför Ert operativsystem. - Kör modulen: Kör filen
.wasmmed kommandotwasmtime.
# Install Wasmtime (example for Linux/macOS):
curl https://wasmtime.dev/install.sh -sSf | bash
# Run your compiled module:
wasmtime target/wasm32-wasi/debug/my-wasi-app.wasmÅtkomst till WASI:s filsystem
WASI möjliggör kontrollerad åtkomst till hostens filsystem. Vi ändrar vårt Rust-program så att det läser från en fil. Kom ihåg att Ni uttryckligen måste ge Wasmtime behörighet att komma åt filer.
use std::fs;
use std::io::{self, Read};
fn main() -> io::Result<()> {
let path = "input.txt";
let mut file = fs::File::open(path)?;
let mut contents = String::new();
file.read_to_string(&mut contents)?;
println!("File content: {}", contents);
Ok(())
}Köra med filåtkomst
Efter att Ni har uppdaterat src/main.rs kompilerar Ni igen. Därefter behöver Ni skapa filen input.txt i projektets rotkatalog och fylla den med innehåll. Slutligen kör Ni programmet med Wasmtime och ger åtkomst till katalogen:
# Create input.txt with content (e.g., "Hello WASI File!")
# Compile again:
cargo build --target wasm32-wasi
# Run, mapping current dir to WASI root:
wasmtime --mapdir /::. target/wasm32-wasi/debug/my-wasi-app.wasmSnabbtest
Nu testar vi Er förståelse av hur man bygger och kör WASI-moduler.
Sammanfattning: bygga och köra WASI
I den här lektionen gick vi igenom de praktiska stegen för att bygga och köra WebAssembly-moduler med WASI.
- Vi konfigurerade vår Rust-miljö för targeten
wasm32-wasi. - Vi skrev Rust-kod som använder WASI för systeminteraktioner.
- Vi kompilerade koden till en portabel
.wasm-modul. - Vi lärde oss att köra dessa moduler med en WASI-runtime som Wasmtime, inklusive att ge nödvändiga behörigheter för åtkomst till hostens resurser.
Nästa gång går vi djupare in på WASI:s funktioner och vad de innebär för säkra och portabla applikationer.
Lär dig WebAssembly (WASM) för högpresterande appar med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Bygga och köra WASI-moduler” gratis?
Ja – hela texten till ”Bygga och köra WASI-moduler” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i WebAssembly (WASM) för högpresterande appar, kan Ni uppgradera till CoddyKit PRO. Kursen i WebAssembly (WASM) för högpresterande appar innehåller totalt 4 lektioner.
Vad lär jag mig i ”Bygga och köra WASI-moduler”?
Kompilera Rust-kod för WASI och kör dina WebAssembly-moduler i olika WASI-runtimes Ni övar på WebAssembly (WASM) för högpresterande appar med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig WebAssembly (WASM) för högpresterande appar?
Du behöver inga förkunskaper. Utbildningen i WebAssembly (WASM) för högpresterande appar på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Bygga och köra WASI-moduler”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här WebAssembly (WASM) för högpresterande appar-lektionen?
Ja. Varje WebAssembly (WASM) för högpresterande appar-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Introduktion till WASI och dess mål
- Bygga och köra WASI-moduler
- WASI:s funktioner och framtid
- Arbeta med WASI-filsystemet