---
title: WebAssembly
slug: WebAssembly
translation_of: WebAssembly
---
<div>{{WebAssemblySidebar}}{{SeeCompatTable}}</div>

<p class="summary" dir="ltr" id="docs-internal-guid-22bb55aa-d69e-e8ef-cbc6-aafea272f684">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.<br>
 Równocześnie możemy w nim korzystać z Javascript.</p>

<h2 dir="ltr" id="W_skrócie">W skrócie</h2>

<p dir="ltr">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. </p>

<p dir="ltr">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.</p>

<p dir="ltr">Co więcej technolgia ta jest rozwijana jako web standard przez <a href="https://www.w3.org/wasm/">W3C WebAssembly Working Group</a> z aktywnym udziałem największych firm technologicznych.</p>

<div class="row topicpage-table">
<div class="section">
<h2 dir="ltr" id="Przewodnik">Przewodnik</h2>

<dl>
 <dt><a href="/en-US/docs/WebAssembly/Concepts">Koncepcja WebAssembly</a></dt>
 <dd>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ć.</dd>
 <dt><a href="/en-US/docs/WebAssembly/C_to_wasm">Kompilacja z C/C++ do WebAssembly</a></dt>
 <dd>Kiedy już napisałeś kod w C/C++, możesz łatwo go skompilować do .wasm korzystając z narzędzi jak <a href="/en-US/docs/">Emscripten</a>. Sprawdźmy jak to działa.</dd>
 <dt><a href="/en-US/docs/WebAssembly/Loading_and_running">Ładowanie i uruchamianie kodu WebAssembly</a></dt>
 <dd>Kiedy już uzyskasz .wasm, ten artykuł pomoże Ci w jego pobraniu do aplikacji, kompilacji i łączeniu z <a href="/en-US/docs/Web/API/Fetch_API">Fetch</a> lub <a href="/en-US/docs/Web/API/XMLHttpRequest">XHR</a> API.</dd>
 <dt><a href="/en-US/docs/WebAssembly/Caching_modules">Cachowanie skompilowanych modułów WebAssembly</a></dt>
 <dd>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ą <a href="/en-US/docs/">IndexedDB</a>.</dd>
 <dt><a href="/en-US/docs/WebAssembly/Using_the_JavaScript_API">Korzystanie z WebAssembly JavaScript API</a></dt>
 <dd>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.</dd>
 <dt><a href="/en-US/docs/WebAssembly/Exported_functions">Wyeksportowane funkcje WebAssembly</a></dt>
 <dd>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ć.</dd>
 <dt><a href="/en-US/docs/WebAssembly/Understanding_the_text_format">Zrozumieć format tekstowy WebAssembly</a></dt>
 <dd>Artykuł tłumaczy format tekstowy wasm. Jest to niskopoziomowa tekstowa reprezentacja modułu .wasm pokazywana w przeglądarce w narzędziach developerskich przy debugowaniu.</dd>
 <dt><a href="/en-US/docs/WebAssembly/Text_format_to_wasm">Konwersja formatu tekstowego WebAssembly do wasm</a></dt>
 <dd>Dowiesz się tutaj jak skonwertować moduł WebAssembly napisany w formacie tekstowym do modułu binarnego .wasm.</dd>
</dl>
</div>

<div class="section">
<h2 dir="ltr" id="API">API</h2>

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

<h2 dir="ltr" id="Przykłady">Przykłady</h2>

<ul dir="ltr">
 <li><a href="https://github.com/JasonWeathersby/WASMSobel">WASMSobel</a></li>
 <li>Zobacz nasze repo <a href="https://github.com/mdn/webassembly-examples/">webassembly-examples</a>, aby zobaczyć inne przykłady.</li>
</ul>

<h2 id="Specyfikacja">Specyfikacja</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Specyfikacja</th>
   <th scope="col">Status</th>
   <th scope="col">Komentarz</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{SpecName('WebAssembly JS')}}</td>
   <td>{{Spec2('WebAssembly JS')}}</td>
   <td><span class="tlid-translation translation" lang="pl"><span title="">Wstępna szkicowa definicja JavaScript API</span></span> .</td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">Kompatybilność</h2>

<div>{{CompatibilityTable}}</div>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Chrome</th>
   <th>Edge</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari (WebKit)</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{CompatChrome(57)}}</td>
   <td>15<sup>[2]</sup></td>
   <td>{{CompatGeckoDesktop(52)}}<sup>[1]</sup></td>
   <td>{{CompatNo}}</td>
   <td>{{CompatOpera(44)}}</td>
   <td>11</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Android Webview</th>
   <th>Chrome for Android</th>
   <th>Edge Mobile</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{CompatChrome(57)}}</td>
   <td>{{CompatChrome(57)}}</td>
   <td>{{CompatNo}}</td>
   <td>{{CompatGeckoMobile(52)}}<sup>[1]</sup></td>
   <td>{{CompatNo}}</td>
   <td>{{CompatNo}}</td>
   <td>11</td>
  </tr>
 </tbody>
</table>
</div>

<p>[1] WebAssembly jest włączone w Firefox 52+, jednakże<span class="tlid-translation translation" lang="pl"><span title=""> wyłączone w</span></span> <a href="https://www.mozilla.org/en-US/firefox/organizations/">Firefox 52 Extended Support Release</a> (ESR.)</p>

<p>[2] Currently supported behind the “Experimental JavaScript Features” flag. See <a href="https://blogs.windows.com/msedgedev/2017/04/20/improved-javascript-performance-webassembly-shared-memory/">this blog post</a> for more details.</p>

<h2 id="Zobacz_także">Zobacz także</h2>

<ul dir="ltr">
 <li><a href="https://research.mozilla.org/webassembly/">WebAssembly on Mozilla Research</a></li>
 <li><a href="http://webassembly.org/">webassembly.org</a></li>
 <li><a href="https://hacks.mozilla.org/category/webassembly/">WebAssembly articles on Mozilla Hacks blog</a></li>
 <li><a href="https://www.w3.org/community/webassembly/">W3C WebAssembly Community Group</a></li>
 <li><a href="/en-US/docs/Web/HTTP/Headers/Large-Allocation">Large-Allocation HTTP header</a></li>
</ul>