Po téměř šesti měsících od uvedení první verze, bylo oznámeno spuštění nové verze projektu Wasmer, která je ve své druhé hlavní verzi a ve kterých byly provedeny důležité změny do takové míry, že interní API v této druhé verzi jsou nekompatibilní, ačkoli byly také přidány nové funkce, které přidávají vylepšení stability, zabezpečení a výkonu.
Pro ty, kteří nevědí Wasmer, měli byste vědět, že vyvíjí modul runtime pro provádění modulů WebAssembly které lze použít k vytvoření univerzálních aplikací, které lze spustit na více operačních systémech, a ke spuštění nedůvěryhodného kódu v izolaci.
Přenositelnost je zajištěna kompilací kódu aplikace do nízkoúrovňového middlewaru WebAssembly Může běžet na jakémkoli operačním systému nebo může být integrován do programů v jiných programovacích jazycích. Programy jsou lehké kontejnery, které spouští pseudokód WebAssembly.
Tyto kontejnery nejsou vázány na operační systém a mohou obsahovat kód původně napsaný v libovolném jazyce programování. Emscripten Toolkit lze použít ke kompilaci do WebAssembly. Chcete-li přeložit WebAssembly na aktuální strojový kód platformy, je podporováno připojení různých backendů sestavení (Singlepass, Cranelift, LLVM) a motorů (pomocí JIT nebo generování strojového kódu).
Řízení přístupu a interakce se systémem jsou zajišťovány prostřednictvím rozhraní WASI (WebAssembly System Interface) API, které poskytuje programovací rozhraní pro práci se soubory, sokety a dalšími funkcemi poskytovanými operačním systémem.
Aplikace jsou izolovány od hlavního systému a mají přístup pouze k deklarované funkčnosti (mechanismus zabezpečení založený na schopnostech správy akcí s každým ze zdrojů (soubory, adresáře, zásuvky, systémová volání atd.).
Hlavní novinky Wasmer 2.0
V této nové prezentované verzi je uvedeno, že významná změna čísla verze od Wasmera je spojeno se zavedením změn nekompatibility do interního API, které podle vývojářů neovlivní 99% uživatelů platformy jakýmkoli způsobem.
Mezi hlavními změnami kompatibility došlo také ke změně formátu serializovaných modulů Wasm (moduly serializované ve Wasmeru 1.0 nebudou ve Wasmeru 2.0 použitelné).
Navíc, podpora pokynů SIMD je zvýrazněna (Single Instruction, Multiple Data) který umožnit paralelizaci datových operací. Mezi oblasti, kde použití SIMD může výrazně zvýšit produktivitu, patří strojové učení, kódování a dekódování videa, zpracování obrazu, simulace fyzických procesů a manipulace s grafikou.
Také je zvýrazněna podpora referenčních typů, umožňující modulům Wasm přístup k informacím v jiných modulech nebo v základním prostředí a byly provedeny významné optimalizace výkonu. Rychlost běhu LLVM s čísly s plovoucí desetinnou čárkou byla zvýšena přibližně o 50%.
Volání funkcí bylo výrazně zrychleno snížením situací, které vyžadují volání jádra. Výkon generátoru kódu Cranelift byl zvýšen o 40%. Snížená doba deserializace dat. Abychom přesněji odráželi podstatu, byly změněny názvy motorů: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).
Konečně Pokud se chcete o Wasmerovi dozvědět více, měli byste vědět, že kód projektu je napsán v Rustu, má licenci MIT a jeho podrobnosti můžete zkontrolovat na jeho oficiálních webových stránkách na následující odkaz.
Nainstalujte modul runtime Wasmer
Na druhou stranu, pro ty, kteří se zajímají o možnost spouštět kontejner WebAssembly, stačí do vašeho systému nainstalovat pouze běhový modul Wasmer, který je dodáván bez externích závislostí.
Je důležité to zmínit Wasmer lze provozovat na jakékoli platformě macOS, Linux a Windows, jediným požadavkem je, aby jeho běhový modul byl nainstalován do vašeho systému.
Chcete-li to provést, stačí spustit následující příkaz v terminálu:
curl https://get.wasmer.io -sSfL | sh
A poté musí provést požadovaný soubor:
wasmer test.wasm
Pokud potřebujete vědět více o tom, jak funguje Wasmer nebo chcete znát jeho zdrojový kód, můžete se o tom poradit Na následujícím odkazu.