WebAssembly tar klivet ut ur webbläsaren
WebAssembly föddes i webbläsaren men lever numera ett rikt liv på serversidan. Med WASI kan samma binär köras säkert på allt från edge-noder till IoT-enheter....

WebAssembly föddes i webbläsaren men lever numera ett rikt liv på serversidan. Med WASI kan samma binär köras säkert på allt från edge-noder till IoT-enheter.
Komponentmodellen som standardiserades nyligen gör det möjligt att kombinera moduler skrivna i olika språk – Rust, Go och Python i samma applikation, med strikta gränser emellan.
För plattformsteam är wasm ett attraktivt alternativ till containrar: millisekundsnabb kallstart och en bråkdel av minnesavtrycket.
Säkerhetsmodellen är kanske det starkaste kortet. En wasm-modul kan i grunden ingenting – varje filsystemsåtkomst, nätverksanrop och miljövariabel måste uttryckligen beviljas. Det gör tekniken idealisk för plugin-system: plattformar kan köra tredjepartskod utan att lita på den, något som tidigare krävde tunga sandlådelösningar.
På edge-sidan har tekniken redan bevisat sig. CDN-jättarnas serverless-plattformar kör kundkod som wasm just för att kallstarterna mäts i mikrosekunder – att snurra upp en container för varje förfrågan vore otänkbart. Samma egenskap gör tekniken intressant för FaaS-plattformar i egen regi.
Verktygsstödet är på väg ikapp entusiasmen. Rust har förstklassigt stöd, Go kompilerar numera direkt till WASI, och komponentmodellens språkoberoende gränssnitt beskrivs i WIT-filer som genererar bindningar automatiskt. Den som kan skriva ett bibliotek kan i praktiken skriva en komponent.
Är containrarna döda? Knappast – befintliga applikationer och hela ekosystemet kring dem försvinner inte. Men för ny funktionalitet med höga krav på densitet, säkerhet eller kallstartstider förtjänar wasm en plats på utvärderingslistan.
