From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- files/ru/webassembly/index.html | 113 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 files/ru/webassembly/index.html (limited to 'files/ru/webassembly/index.html') 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 +--- +
{{WebAssemblySidebar}}
+ +

WebAssembly – это новый открытый формат байт-кода, исполняемого современными браузерами. Он позволяет переносить код, написанный на таких языках как C, C++, C#, Rust, в низкоуровневые ассемблерные инструкции и использовать его в сети. Формат имеет компактные размеры, высокую производительность, близкую к нативной, и может одновременно работать с  JavaScript.

+ +

В двух словах

+ +

WebAssembly оказывает огромное влияние на веб-платформу — он предоставляет способ исполнения кода, написанного на различных языках, в сети, со скоростью близкой к нативной, чего ранее невозможно было достичь.

+ +

WebAssembly разработан для дополнения JavaScript – используя WebAssembly JavaScript API вы можете загружать модули WebAssembly в приложения JavaScript и обеспечивать взаимодействие между ними, используя общие функции. Такой подход позволяет вам получить производительность и мощность WebAssembly, а также выразительность и гибкость JavaScript в ваших приложениях, даже если вы не знаете как писать код WebAssembly, а используете готовые модули.

+ +

И что еще лучше, так это то, что WebAssembly разрабатывается как веб-стандарт W3C WebAssembly Working Group и Community Group при активном участии основных производителей браузеров.

+ +
+
+

Руководства

+ +
+
Основы WebAssembly
+
Прежде всего, начните с чтения общего описания WebAssembly - что это такое, чем это может быть полезно, почему он подходит для веб-платформы и как его использовать.
+
Компиляция кода C/C++ в WebAssembly
+
После того как вы написали код на C / C ++, вы можете скомпилировать его в .wasm, например, с помощью инструмента Emscripten. Давайте посмотрим, как это работает.
+
Компиляция существующего кода C в WebAssembly
+
Главное, что позволяет WebAssembly, это использование огромного множества разнообразных и проверенных временем библиотек, написанных на языке C, в сети.
+
Загрузка и запуск кода WebAssembly
+
После того, как у вас появился .wasm, эта статья расскажет, как из него получить, скомпилировать и создать экземпляр модуля, совмещая WebAssembly JavaScript API c Fetch или XHR API.
+
Кэширование скомпилированных модулей WebAssembly
+
Кэширование больших модулей WebAssembly на клиенте полезно для повышения скорости запуска приложений. В этой статье объясняется, как это сделать с помощью IndexedDB.
+
Использование WebAssembly JavaScript API
+
После того, как вы загрузили модуль .wasm, вы захотите его использовать. В этой статье мы покажем вам, как использовать WebAssembly через WebAssembly JavaScript API.
+
Экспортируемые функции WebAssembly
+
Экспортируемые функции WebAssembly — это функции нативного модуля, доступные в JavaScript, которые позволяют вызывать код WebAssembly из JavaScript. В этой статье описывается, что они из себя представляют.
+
Описание текстового формата WebAssembly
+
Эта статья описывает текстовый формат WebAssembly. Это низкоуровневое текстовое представления модулей .wasm используемое в инструментах разработчика во время отладки.
+
Перевод из текстового формата WebAssembly в wasm
+
Эта статья содержит руководство по переводу модулей WebAssembly, написанных в текстовом формате, в двоичный файл .wasm.
+
+
+ +
+

Ссылки на API

+ +
+
{{jsxref("Global_objects/WebAssembly", "WebAssembly")}}
+
Этот объект является пространством имен для всех функций, связанных с WebAssembly.
+
{{jsxref("Global_objects/WebAssembly/Module", "WebAssembly.Module()")}}
+
Объект WebAssembly.Module содержит не контролируемый WebAssembly код, который уже скомпилирован браузером и может эффективно использоваться совместно с Workers, кешироваться в IndexedDB, и иметь несколько экземпляров.
+
{{jsxref("Global_objects/WebAssembly/Instance", "WebAssembly.Instance()")}}
+
Объект WebAssembly.Instance это контролируемый, исполняемый экземпляр ModuleInstance содержит все  экспортированные функции WebAssembly, которые позволяют вызывать код WebAssembly из JavaScript.
+
{{jsxref("Global_objects/WebAssembly/instantiateStreaming", "WebAssembly.instantiateStreaming()")}}
+
Функция WebAssembly.instantiateStreaming() является основной для компиляции и создания экземпляра кода WebAssembly, возвращающая одновременно Module и Instance.
+
{{jsxref("Global_objects/WebAssembly/Memory", "WebAssembly.Memory()")}}
+
WebAssembly.Memory это изменяемый {{jsxref("Global_objects/ArrayBuffer", "ArrayBuffer")}} содержащий в себе данные не имеющие типа к которым обращается Instance.
+
{{jsxref("Global_objects/WebAssembly/Table", "WebAssembly.Table()")}}
+
WebAssembly.Table объект является изменяемым типизированным массивом значений, таких как ссылки на функции, которые доступны Instance.
+
{{jsxref("WebAssembly.CompileError()")}}
+
Создает новый WebAssembly CompileError объект.
+
{{jsxref("WebAssembly.LinkError()")}}
+
Создает новый WebAssembly LinkError объект.
+
{{jsxref("WebAssembly.RuntimeError()")}}
+
Создает новый WebAssembly RuntimeError объект.
+
+
+
+ +

Примеры

+ + + +

Спецификация

+ + + + + + + + + + + + + + + + +
SpecificationStatusComment
{{SpecName('WebAssembly JS')}}{{Spec2('WebAssembly JS')}}Initial draft definition of the JavaScript API.
+ +

Совместимость с браузерами

+ +
+ + +

{{Compat("javascript.builtins.WebAssembly")}}

+
+ +

Смотрите также

+ + -- cgit v1.2.3-54-g00ecf