--- title: WebAssembly slug: WebAssembly translation_of: WebAssembly ---
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.
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.
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
jest stanową, wykonywalną instancją modułu. Obiekt Instance
zawiera wyeksportowane funkcje WebAssembly, które pozwalają na wywołanie bezpośrednio w kodzie JavaScript.WebAssembly.Instance
object is a stateful, executable instance of a Module
. Instance
objects contain all the Exported WebAssembly functions that allow calling into WebAssembly code from JavaScript.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
jest obiektem zawierającym rozszerzalny {{jsxref("Global_objects/ArrayBuffer", "ArrayBuffer")}}, który przechowuje bajty pamięci dostępnej dla Instance
.WebAssembly.
Table
obiekt jest rozszerzalnym {{jsxref("Global_Objects/TypedArray", "TypedArray")}}CompileError
.LinkError
.RuntimeError
.Specyfikacja | Status | Komentarz |
---|---|---|
{{SpecName('WebAssembly JS')}} | {{Spec2('WebAssembly JS')}} | Wstępna szkicowa definicja JavaScript API . |
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | {{CompatChrome(57)}} | 15[2] | {{CompatGeckoDesktop(52)}}[1] | {{CompatNo}} | {{CompatOpera(44)}} | 11 |
Feature | Android Webview | Chrome for Android | Edge Mobile | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | {{CompatChrome(57)}} | {{CompatChrome(57)}} | {{CompatNo}} | {{CompatGeckoMobile(52)}}[1] | {{CompatNo}} | {{CompatNo}} | 11 |
[1] WebAssembly jest włączone w Firefox 52+, jednakże wyłączone w Firefox 52 Extended Support Release (ESR.)
[2] Currently supported behind the “Experimental JavaScript Features” flag. See this blog post for more details.