aboutsummaryrefslogtreecommitdiff
path: root/files/pl/webassembly/index.html
blob: 7981440f91c2cbb59093aacf165980163e61e69d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
---
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>