diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 14:42:52 -0500 |
commit | 074785cea106179cb3305637055ab0a009ca74f2 (patch) | |
tree | e6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/webassembly/index.html | |
parent | da78a9e329e272dedb2400b79a3bdeebff387d47 (diff) | |
download | translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2 translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip |
initial commit
Diffstat (limited to 'files/ru/webassembly/index.html')
-rw-r--r-- | files/ru/webassembly/index.html | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/files/ru/webassembly/index.html b/files/ru/webassembly/index.html new file mode 100644 index 0000000000..84e0c56b57 --- /dev/null +++ b/files/ru/webassembly/index.html @@ -0,0 +1,113 @@ +--- +title: WebAssembly +slug: WebAssembly +translation_of: WebAssembly +--- +<div>{{WebAssemblySidebar}}</div> + +<p class="summary" dir="ltr" id="docs-internal-guid-22bb55aa-d69e-e8ef-cbc6-aafea272f684">WebAssembly – это новый открытый формат байт-кода, исполняемого современными браузерами. Он позволяет переносить код, написанный на таких языках как C, C++, C#, Rust, в низкоуровневые ассемблерные инструкции и использовать его в сети. Формат имеет компактные размеры, высокую производительность, близкую к нативной, и может одновременно работать с JavaScript.</p> + +<h2 dir="ltr" id="В_двух_словах">В двух словах</h2> + +<p dir="ltr">WebAssembly оказывает огромное влияние на веб-платформу — он предоставляет способ исполнения кода, написанного на различных языках, в сети, со скоростью близкой к нативной, чего ранее невозможно было достичь.</p> + +<p dir="ltr">WebAssembly разработан для дополнения JavaScript – используя WebAssembly JavaScript API вы можете загружать модули WebAssembly в приложения JavaScript и обеспечивать взаимодействие между ними, используя общие функции. Такой подход позволяет вам получить производительность и мощность WebAssembly, а также выразительность и гибкость JavaScript в ваших приложениях, даже если вы не знаете как писать код WebAssembly, а используете готовые модули.</p> + +<p dir="ltr">И что еще лучше, так это то, что WebAssembly разрабатывается как веб-стандарт <a href="https://www.w3.org/wasm/">W3C WebAssembly Working Group</a> и <a href="https://www.w3.org/community/webassembly/">Community Group</a> при активном участии основных производителей браузеров.</p> + +<div class="row topicpage-table"> +<div class="section"> +<h2 dir="ltr" id="Руководства">Руководства</h2> + +<dl> + <dt><a href="/ru/docs/WebAssembly/Concepts">Основы WebAssembly</a></dt> + <dd>Прежде всего, начните с чтения общего описания WebAssembly - что это такое, чем это может быть полезно, почему он подходит для веб-платформы и как его использовать.</dd> + <dt><a href="/en-US/docs/WebAssembly/C_to_wasm">Компиляция кода C/C++ в WebAssembly</a></dt> + <dd>После того как вы написали код на C / C ++, вы можете скомпилировать его в .wasm, например, с помощью инструмента <a href="/en-US/docs/Mozilla/Projects/Emscripten/">Emscripten</a>. Давайте посмотрим, как это работает.</dd> + <dt><a href="https://developer.mozilla.org/en-US/docs/WebAssembly/existing_C_to_wasm">Компиляция существующего кода C в WebAssembly</a></dt> + <dd>Главное, что позволяет WebAssembly, это использование огромного множества разнообразных и проверенных временем библиотек, написанных на языке C, в сети.</dd> + <dt><a href="/ru/docs/WebAssembly/Loading_and_running">Загрузка и запуск кода WebAssembly</a></dt> + <dd>После того, как у вас появился .wasm, эта статья расскажет, как из него получить, скомпилировать и создать экземпляр модуля, совмещая <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly">WebAssembly JavaScript API</a> c <a href="/en-US/docs/Web/API/Fetch_API">Fetch</a> или <a href="/en-US/docs/Web/API/XMLHttpRequest">XHR</a> API.</dd> + <dt><a href="/en-US/docs/WebAssembly/Caching_modules">Кэширование скомпилированных модулей WebAssembly</a></dt> + <dd>Кэширование больших модулей WebAssembly на клиенте полезно для повышения скорости запуска приложений. В этой статье объясняется, как это сделать с помощью <a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>.</dd> + <dt><a href="/ru/docs/WebAssembly/Using_the_JavaScript_API">Использование WebAssembly JavaScript API</a></dt> + <dd>После того, как вы загрузили модуль .wasm, вы захотите его использовать. В этой статье мы покажем вам, как использовать WebAssembly через WebAssembly JavaScript API.</dd> + <dt><a href="/en-US/docs/WebAssembly/Exported_functions">Экспортируемые функции WebAssembly</a></dt> + <dd>Экспортируемые функции WebAssembly — это функции нативного модуля, доступные в JavaScript, которые позволяют вызывать код WebAssembly из JavaScript. В этой статье описывается, что они из себя представляют.</dd> + <dt><a href="/ru/docs/WebAssembly/Understanding_the_text_format">Описание текстового формата WebAssembly</a></dt> + <dd>Эта статья описывает текстовый формат WebAssembly. Это низкоуровневое текстовое представления модулей .wasm используемое в инструментах разработчика во время отладки.</dd> + <dt><a href="/en-US/docs/WebAssembly/Text_format_to_wasm">Перевод из текстового формата WebAssembly в wasm</a></dt> + <dd>Эта статья содержит руководство по переводу модулей WebAssembly, написанных в текстовом формате, в двоичный файл .wasm.</dd> +</dl> +</div> + +<div class="section"> +<h2 dir="ltr" id="Ссылки_на_API">Ссылки на API</h2> + +<dl> + <dt>{{jsxref("Global_objects/WebAssembly", "WebAssembly")}}</dt> + <dd>Этот объект является пространством имен для всех функций, связанных с WebAssembly.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/Module", "WebAssembly.Module()")}}</dt> + <dd>Объект <code>WebAssembly.Module</code> содержит не контролируемый WebAssembly код, который уже скомпилирован браузером и может эффективно использоваться совместно с<a href="/en-US/docs/Web/API/Worker/postMessage"> Workers</a>, <a href="/en-US/docs/WebAssembly/Caching_modules">кешироваться в IndexedDB</a>, и иметь несколько экземпляров.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/Instance", "WebAssembly.Instance()")}}</dt> + <dd>Объект <code>WebAssembly.Instance</code> это контролируемый, исполняемый экземпляр <code>Module</code>. <code>Instance</code> содержит все <a href="/en-US/docs/WebAssembly/Exported_functions">экспортированные функции WebAssembly</a>, которые позволяют вызывать код WebAssembly из JavaScript.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/instantiateStreaming", "WebAssembly.instantiateStreaming()")}}</dt> + <dd>Функция <code>WebAssembly.instantiateStreaming()</code> является основной для компиляции и создания экземпляра кода WebAssembly, возвращающая одновременно <code>Module</code> и <code>Instance</code>.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/Memory", "WebAssembly.Memory()")}}</dt> + <dd><code>WebAssembly.Memory</code> это изменяемый {{jsxref("Global_objects/ArrayBuffer", "ArrayBuffer")}} содержащий в себе данные не имеющие типа к которым обращается <code>Instance</code>.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/Table", "WebAssembly.Table()")}}</dt> + <dd><code>WebAssembly.Table</code> объект является изменяемым типизированным массивом значений, таких как ссылки на функции, которые доступны <code>Instance</code>.</dd> + <dt>{{jsxref("WebAssembly.CompileError()")}}</dt> + <dd>Создает новый WebAssembly <code>CompileError</code> объект.</dd> + <dt>{{jsxref("WebAssembly.LinkError()")}}</dt> + <dd>Создает новый WebAssembly <code>LinkError</code> объект.</dd> + <dt>{{jsxref("WebAssembly.RuntimeError()")}}</dt> + <dd>Создает новый WebAssembly <code>RuntimeError</code> объект.</dd> +</dl> +</div> +</div> + +<h2 dir="ltr" id="Примеры">Примеры</h2> + +<ul dir="ltr"> + <li><a href="https://github.com/JasonWeathersby/WASMSobel">WASMSobel</a></li> + <li>Больше примеров вы можете найти в нашем репозитории <a href="https://github.com/mdn/webassembly-examples/">webassembly-examples</a>.</li> +</ul> + +<h2 id="Спецификация">Спецификация</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Specification</th> + <th scope="col">Status</th> + <th scope="col">Comment</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('WebAssembly JS')}}</td> + <td>{{Spec2('WebAssembly JS')}}</td> + <td>Initial draft definition of the JavaScript API.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2> + +<div> +<div class="hidden">Эта таблица совместимости автоматически создается на основе структурированных данных. Если вы хотите внести свой вклад, пожалуйста, посетите <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> и отправьте нам запрос на внесение изменений.</div> + +<p>{{Compat("javascript.builtins.WebAssembly")}}</p> +</div> + +<h2 id="Смотрите_также">Смотрите также</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> + <li><a href="https://developers.google.com/web/updates/2018/03/emscripting-a-c-library">Emscripting a C Library to Wasm</a></li> +</ul> |