Инструменты пользователя

Инструменты сайта

  • Показать страницу
  • История страницы
  • Ссылки сюда
  • Оставить на чай
  • Экспорт в PDF
  • Наверх

  • software:development:web:docs:webassembly

    Различия

    Показаны различия между двумя версиями страницы.

    Ссылка на это сравнение

    Предыдущая версия справа и слеваПредыдущая версия
    Следующая версия
    Предыдущая версия
    software:development:web:docs:webassembly [2024/02/27 13:32] vladpolskiysoftware:development:web:docs:webassembly [2024/02/27 17:31] (текущий) – [Ссылки и Дополнения] vladpolskiy
    Строка 6: Строка 6:
      
     WebAssembly предназначен для дополнения и работы вместе с JavaScript — с помощью API-интерфейсов JavaScript WebAssembly вы можете загружать модули WebAssembly в приложение JavaScript и совместно использовать функциональность между ними. Это позволяет вам воспользоваться преимуществами производительности и мощи WebAssembly, а также выразительности и гибкости JavaScript в одних и тех же приложениях, даже если вы не знаете, как писать код WebAssembly. WebAssembly предназначен для дополнения и работы вместе с JavaScript — с помощью API-интерфейсов JavaScript WebAssembly вы можете загружать модули WebAssembly в приложение JavaScript и совместно использовать функциональность между ними. Это позволяет вам воспользоваться преимуществами производительности и мощи WebAssembly, а также выразительности и гибкости JavaScript в одних и тех же приложениях, даже если вы не знаете, как писать код WebAssembly.
     +
     +И что еще лучше, он разрабатывается как веб-стандарт через [[https://www.w3.org/wasm/|рабочую группу W3C WebAssembly]] и [[https://www.w3.org/community/webassembly/|группу сообщества]] при активном участии всех основных поставщиков браузеров.
     +
     +=====Путеводители=====
     +
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:concepts| Концепции веб-сборки ]]**
     +
     +Начните с прочтения общих концепций, лежащих в основе WebAssembly — что это такое, почему это так полезно, как оно вписывается в веб-платформу (и за ее пределами) и как ее использовать.
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:c_to_wasm-2| Компиляция нового модуля C/C++ в WebAssembly ]]**
     +
     +Написав код на C/C++, вы можете затем скомпилировать его в Wasm с помощью такого инструмента, как [[https://emscripten.org/|Emscripten]] . Давайте посмотрим, как это работает.
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:existing_c_to_wasm| Компиляция существующего модуля C в WebAssembly ]]**
     +
     +Основной вариант использования WebAssembly — взять существующую экосистему библиотек C и позволить разработчикам использовать их в Интернете.
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:rust_to_wasm-2| Компиляция из Rust в WebAssembly ]]**
     +
     +Если вы написали код на Rust, вы можете скомпилировать его в WebAssembly! В этом руководстве вы узнаете все, что вам нужно знать, чтобы скомпилировать проект Rust в Wasm и использовать его в существующем веб-приложении.
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:loading_and_running| Загрузка и запуск кода WebAssembly ]]**
     +
     +Если у вас есть модуль Wasm, в этой статье рассказывается, как его получить, скомпилировать и создать экземпляр, сочетая API [[software:development:web:docs:webassembly:javascript_interface|JavaScript WebAssembly]] с API-интерфейсами [[software:development:web:docs:web:api:Fetch_API|Fetch]] или [[software:development:web:docs:web:api:XMLHttpRequest|XHR]].
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:Using_the_JavaScript_API| Использование API JavaScript WebAssembly ]]**
     +
     +Загрузив модуль Wasm, вы захотите его использовать. В этой статье мы покажем вам, как использовать WebAssembly через API JavaScript WebAssembly.
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:Exported_functions| Экспортированные функции WebAssembly ]]**
     +
     +Экспортированные функции WebAssembly — это отражения функций WebAssembly в JavaScript, которые позволяют вызывать код WebAssembly из JavaScript. В этой статье описывается, что они из себя представляют.
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:Understanding_the_text_format| Понимание текстового формата WebAssembly ]]**
     +
     +В этой статье объясняется текстовый формат Wasm. Это низкоуровневое текстовое представление модуля Wasm, отображаемое в инструментах разработчика браузера при отладке.
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:Text_format_to_Wasm-2| Преобразование текстового формата WebAssembly в Wasm ]]**
     +
     +В этой статье представлено руководство по преобразованию модуля WebAssembly, написанного в текстовом формате, в двоичный файл Wasm.
     +
     +=====Справочник по API=====
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:Reference| Справочник инструкций WebAssembly ]]**
     +
     +Справочная документация с интерактивными примерами набора операторов WebAssembly.
     +
     +{{:software:development:web:book_icon_left.png?32|}}**[[software:development:web:docs:webassembly:JavaScript_interface| JavaScript-интерфейс WebAssembly ]]**
     +
     +Этот объект действует как пространство имен для всех функций, связанных с WebAssembly.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:Global| WebAssembly.Global() ]]\\  
     +Объект **WebAssembly.Global** представляет собой экземпляр глобальной переменной, доступный как из **JavaScript**, так и импортируемый/экспортируемый в один или несколько [[software:development:web:docs:webassembly:JavaScript_interface:Module|WebAssembly.Module]] экземпляров. Это позволяет динамически связывать несколько модулей.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:Module| WebAssembly.Module() ]]\\  
     +Объект **WebAssembly.Module** содержит код **WebAssembly** без сохранения состояния, который уже скомпилирован браузером и может эффективно [[software:development:web:docs:web:api:Worker:postMessage|использоваться совместно с Workers]] и создаваться несколько раз.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:Instance| WebAssembly.Instance() ]]\\  
     +Объект **WebAssembly.Instance** — это исполняемый экземпляр файла **Module.Instance** объекты содержат все [[software:development:web:docs:WebAssembly:Exported_functions|экспортированные функции WebAssembly]], которые позволяют вызывать код **WebAssembly** из **JavaScript**.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:compile| WebAssembly.compile() ]]\\  
     +Функция **WebAssembly.compile()** компилирует двоичный код **WebAssembly** в **WebAssembly.Module** объект.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:compileStreaming| WebAssembly.compileStreaming() ]]\\  
     +Функция **WebAssembly.compileStreaming()** компилирует **WebAssembly.Module** непосредственно из потокового базового источника.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:instantiate| WebAssembly.instantiate() ]]\\  
     +Функция **WebAssembly.instantiate()** позволяет компилировать и создавать экземпляры кода **WebAssembly**.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:instantiateStreaming| WebAssembly.instantiateStreaming() ]]\\  
     +Функция **WebAssembly.instantiateStreaming()** является основным **API** для компиляции и создания экземпляра кода **WebAssembly**, возвращая как a, **Module** так и его первый файл **Instance**.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:validate| WebAssembly.validate() ]]\\  
     +Функция **WebAssembly.validate()** проверяет заданный типизированный массив двоичного кода **WebAssembly**.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:Memory| WebAssembly.Memory() ]]\\  
     +Объект **WebAssembly.Memory** — это объект изменяемого размера **ArrayBuffer**, который содержит необработанные байты памяти, к которым обращается объект **Instance**.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:Table| WebAssembly.Table() ]]\\  
     +Объект **WebAssembly.Table** представляет собой типизированный массив изменяемого размера непрозрачных значений, таких как ссылки на функции, к которым обращается объект **Instance**.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:Tag| WebAssembly.Tag() ]]\\  
     +Объект **WebAssembly.Tag** определяет тип исключения **WebAssembly**, которое может быть выброшено в код **WebAssembly** или из него.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:Exception| WebAssembly.Exception() ]]\\  
     +Объект **WebAssembly.Exception** представляет собой исключение во время выполнения, генерируемое из **WebAssembly** в **JavaScript** или генерируемое из **JavaScript** в обработчик исключений **WebAssembly**.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:CompileError| WebAssembly.CompileError() ]]\\  
     +Создает новый **CompileError** объект **WebAssembly**.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:LinkError| WebAssembly.LinkError() ]]\\  
     +Создает новый **LinkError** объект **WebAssembly**.
     +
     +[[software:development:web:docs:webassembly:JavaScript_interface:RuntimeError| WebAssembly.RuntimeError() ]]\\  
     +Создает новый **RuntimeError** объект **WebAssembly**.
     +
     +=====Ссылки и Дополнения=====
     +  * [[https://ru.wikipedia.org/wiki/WebAssembly|О WebAssembly]]
     +  * [[https://webassembly.org/|webassembly.org]]
     +  * [[https://www.w3.org/community/webassembly/|W3C WebAssembly Community Group]]
     +  * [[https://web.dev/articles/emscripting-a-c-library|Emscripting a C Library to Wasm]]
     +  * [[https://github.com/JasonWeathersby/WASMSobel|WASMSobel]]
     +  * См. MDN репозиторий [[https://github.com/mdn/webassembly-examples/|webassembly-examples]] для получения ряда других примеров.
     +  * См. wiki репозиторий [[https://gitlab.book51.ru/wiki/webassembly-examples.git|webassembly-examples]] для получения ряда других примеров.
     +  * {{ :software:development:web:docs:webassembly-examples-main.zip |Загрузить примеры веб-сборки}}
    software/development/web/docs/webassembly.1709029967.txt.gz · Последнее изменение: 2024/02/27 13:32 — vladpolskiy