To tłumaczenie jest niekompletne. Pomóż przetłumaczyć ten artykuł z języka angielskiego.

This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.

WebAssembly jest nowym rodzajem języka, który może być uruchomiony w nowoczesnych wersjach przeglądarek — jest językiem niskopoziomowym, który działa z szybkością zbliżoną do rozwiązań natywnych i pozwala na kompilacje kodu napisanego w takich językach jak C/C++ do kodu docelowego, który może być użyty  w web.
Równocześnie możemy w nim korzystać z Javascript.

W skrócie

WebAssembly ma duży wpływ na całą platformę web - dostarcza sposób na uruchomienie kodu napisanego w wielu różnych językach w przeglądarce z szybkością bliską natywnym rozwiązaniom, co wcześniej nie było możliwe do osiągnięcia. 

WebAssembly jest stworzone do uzupełnienia JavaScript - używając WebAssembly JavaScript API, możesz załadować moduły WA do aplikacji JavaScript i współdzielić funkcjonalności. To pozwala Ci skorzystać jednocześnie z wydajności WebAssembly razem z prostotą i elastycznością JavaScript w jednej i tej samej aplikacji, nawet jeśli nie wiesz jak napisać kod WebAssembly.

Co więcej technolgia ta jest rozwijana jako web standard przez W3C WebAssembly Working Group z aktywnym udziałem największych firm technologicznych.

Przewodnik

Koncepcja WebAssembly
Rozpocznij od przeczytania ogólnej koncepcji stojącej za WebAssembly - co to jest, dlaczego jest przydatne, jak wpasowuje się w platformę web i jak z tego korzystać.
Kompilacja z C/C++ do WebAssembly
Kiedy już napisałeś kod w C/C++, możesz łatwo go skompilować do .wasm korzystając z narzędzi jak Emscripten. Sprawdźmy jak to działa.
Ładowanie i uruchamianie kodu WebAssembly
Kiedy już uzyskasz .wasm, ten artykuł pomoże Ci w jego pobraniu do aplikacji, kompilacji i łączeniu z Fetch lub XHR API.
Cachowanie skompilowanych modułów WebAssembly
Cachowanie dużych modułów WebAssembly po stronie klienckiej jest przydatne dla zwiększenia wydajności uruchamiania aplikacji. Artykuł opisuje jak osiągnąć to za pomocą IndexedDB.
Korzystanie z WebAssembly JavaScript API
Kiedy już załadujesz moduł .wasm do swojego projektu, będziesz chciał go użyć. Ten artykuł pokaże Ci jak używać modułów WA za pomocą WebAssembly JavaScript API.
Wyeksportowane funkcje WebAssembly
Wyeksportowane funkcje WebAssembly są odpowiednikiem zwykłych funkcji i pozwalają na wywołanie kodu WebAssembly wewnątrz JavaScript. Artykuł opisuje czym są i jak ich używać.
Zrozumieć format tekstowy WebAssembly
Artykuł tłumaczy format tekstowy wasm. Jest to niskopoziomowa tekstowa reprezentacja modułu .wasm pokazywana w przeglądarce w narzędziach developerskich przy debugowaniu.
Konwersja formatu tekstowego WebAssembly do wasm
Dowiesz się tutaj jak skonwertować moduł WebAssembly napisany w formacie tekstowym do modułu binarnego .wasm.

API

WebAssembly
Obiekt przestrzeni nazw dla wszystkich metod powiązanych z WebAssembly.
WebAssembly.Module
Obiekt WebAssembly.Module zawiera bezstanowy kod  WebAssembly, który już został skompilowany przez przeglądarkę i może być skutecznie współdzielony z Workerami czy zachachowany w IndexedDB.
WebAssembly.Instance
Obiekt WebAssembly.Instance jest stanową, wykonywalną instancją modułu. Obiekt Instance zawiera wyeksportowane funkcje WebAssembly, które pozwalają na wywołanie bezpośrednio w kodzie JavaScript.
A WebAssembly.Instance object is a stateful, executable instance of a ModuleInstance objects contain all the Exported WebAssembly functions that allow calling into WebAssembly code from JavaScript.
WebAssembly.instantiate()
WebAssembly.instantiate() jest główną metodą API służącą do kompilowania i tworzenia gotowych do użycia instancji kodu WebAssembly. Zwraca Module oraz Instance.
WebAssembly.Memory()
WebAssembly.Memory jest obiektem zawierającym rozszerzalny ArrayBuffer, który przechowuje bajty pamięci dostępnej dla Instance.
WebAssembly.Table()
WebAssembly.Table obiekt jest rozszerzalnym TypedArray
WebAssembly.CompileError()
Tworzy nowy obiekt CompileError.
WebAssembly.LinkError()
Tworzy nowy obiekt LinkError.
WebAssembly.RuntimeError()
Tworzy nowy obiekt RuntimeError.

Przykłady

Specyfikacja

Specification Status Comment
Web Assembly JavaScript API Draft Initial draft definition of the JavaScript API.

Kompatybilność

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 57 15[2] 52 (52)[1] No support 44 11
Feature Android Webview Chrome for Android Edge Mobile Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 57 57 No support 52.0 (52)[1] No support No support 11

[1] WebAssembly is enabled in Firefox 52+, although disabled in the Firefox 52 Extended Support Release (ESR.)

[2] Currently supported behind the “Experimental JavaScript Features” flag. See this blog post for more details.

Zobacz także

Autorzy i etykiety dokumentu

 Autorzy tej strony: AndrzejSala
 Ostatnia aktualizacja: AndrzejSala,