Po prawie sześciu miesiącach od premiery pierwszej wersji, ogłoszono start nowej wersji projektu Wasmer, który jest w drugiej wersji głównej i w którym dokonano ważnych zmian w takim stopniu, że wewnętrzne interfejsy API w tej drugiej wersji są niekompatybilne, chociaż dodano również nowe funkcje, które zwiększają stabilność, bezpieczeństwo i wydajność.
Dla nieświadomych Wasmer, powinieneś wiedzieć, że rozwija środowisko wykonawcze do wykonywania modułów WebAssembly które mogą być używane do tworzenia uniwersalnych aplikacji, które mogą działać w wielu systemach operacyjnych i do samodzielnego uruchamiania niezaufanego kodu.
Przenośność zapewnia kompilacja kodu aplikacji do niskopoziomowego oprogramowania pośredniczącego WebAssembly Może działać na dowolnym systemie operacyjnym lub być zintegrowany z programami w innych językach programowania. Programy to lekkie kontenery, które uruchamiają pseudokod WebAssembly.
te kontenery nie są powiązane z systemem operacyjnym i mogą zawierać kod oryginalnie napisany w dowolnym języku programowanie. Emscripten Toolkit może być używany do kompilacji do WebAssembly. Aby przetłumaczyć WebAssembly na bieżący kod maszynowy platformy, obsługiwane jest łączenie różnych zapleczy kompilacji (Singlepass, Cranelift, LLVM) i silników (przy użyciu JIT lub generowania kodu maszynowego).
Kontrolę dostępu i interakcję z systemem zapewnia interfejs API WASI (WebAssembly System Interface), który zapewnia interfejsy programistyczne do pracy z plikami, gniazdami i innymi funkcjami dostarczanymi przez system operacyjny.
Aplikacje są odizolowane od głównego systemu i mają dostęp tylko do zadeklarowanej funkcjonalności (mechanizm bezpieczeństwa oparty na możliwościach zarządzania akcjami z każdym z zasobów (pliki, katalogi, gniazda, wywołania systemowe itp.).
Główne nowości Wasmera 2.0
W prezentowanej nowej wersji wspomina się, że znacząca zmiana numeru wersji przez Wasmera wiąże się z wprowadzeniem zmian niezgodności do wewnętrznego API, które według twórców, nie wpłynie na 99% użytkowników z platformy w jakikolwiek sposób.
Wśród głównych zmian dotyczących kompatybilności nastąpiła również zmiana formatu serializowanych modułów Wasm (moduły serializowane w Wasmer 1.0 nie będą dostępne w Wasmer 2.0).
Ponadto, podświetlona jest obsługa instrukcji SIMD (Pojedyncza instrukcja, wiele danych), które umożliwiają zrównoleglenie operacji na danych data. Obszary, w których użycie SIMD może znacznie zwiększyć wydajność, obejmują uczenie maszynowe, kodowanie i dekodowanie wideo, przetwarzanie obrazu, symulację procesów fizycznych i manipulację grafiką.
Również podświetlona jest obsługa typów referencyjnych, umożliwienie modułom Wasm dostępu do informacji w innych modułach lub w środowisku bazowym oraz dokonano znaczących optymalizacji wydajności. Szybkość środowiska wykonawczego LLVM z liczbami zmiennoprzecinkowymi została zwiększona o około 50%.
Wywołania funkcji zostały znacznie przyspieszone dzięki ograniczeniu sytuacji wymagających wywołań jądra. Wydajność generatora kodów Cranelift została zwiększona o 40%. Skrócenie czasu deserializacji danych. Aby dokładniej odzwierciedlić istotę, zmieniono nazwy silników: JIT → Universal, Native → Dylib (Dynamic Library), Object File → StaticLib (Static Library).
W końcu Jeśli chcesz dowiedzieć się więcej o Wasmer, Powinieneś wiedzieć, że kod projektu jest napisany w języku Rust, posiada licencję MIT i możesz sprawdzić jego szczegóły na jego oficjalnej stronie internetowej pod adresem następujący link.
Zainstaluj środowisko wykonawcze Wasmer
Z drugiej strony, dla tych, którzy są zainteresowani możliwością uruchomienia kontenera WebAssembly, wystarczy zainstalować w systemie środowisko uruchomieniowe Wasmer, które jest dostarczane bez zewnętrznych zależności.
Należy o tym wspomnieć Wasmer można uruchomić na dowolnej platformie macOS, Linux i Windows, jedynym wymaganiem jest, aby jego środowisko wykonawcze było zainstalowane w systemie.
Aby to zrobić, po prostu uruchom następujące polecenie w terminalu:
curl https://get.wasmer.io -sSfL | sh
Następnie muszą wykonać wymagany plik:
wasmer test.wasm
Jeśli chcesz dowiedzieć się więcej o działaniu Wasmer lub chcesz poznać jego kod źródłowy, możesz skonsultować się z tym wszystkim W poniższym linku.