Серия обучающих текстов, посвященных первым шагам работы с WebAssembly, для начинающих.

Некоторое время назад я начал изучать WebAssembly как абсолютный новичок. Это было увлекательное, но не такое уж простое путешествие.

Я решил опубликовать свои непрерывные и, возможно, бесконечные заметки, чтобы сделать ваш путь обучения немного проще.

Вот актуальный список уже готовых постов. Я буду постоянно обновлять и расширять его.

Здравствуй, мир Wasm!

Давайте попробуем WebAssembly в первый раз. Мы создадим простую программу в текстовом формате Wat, скомпилируем ее в двоичный файл Wasm и, наконец, выполним в браузере и как серверное приложение.

Двоичный формат Wasm

Мы будем исследовать структуру двоичного формата Wasm байт за байтом.

Основы программирования Ват

Наконец-то настоящее программирование! Мы изучим самые основы текстового формата Wat, как работать с функциями и переменными, писать условия и циклы.

Память Wasm и работа со строками

Концепция объектов памяти — очень важное ноу-хау в Wasm. Мы будем использовать его для работы со строками.

Запуск Wasm в браузере

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

Запуск Wasm в Node.js

Браузер — не единственная среда, в которой может работать Wasm. Мы также узнаем, как запускать Wasm в Node.js, популярной серверной платформе.

Знакомство с ВАСИ

Системный интерфейс WebAssembly (WASI) обеспечивает доступ к нескольким функциям операционной системы Wasm. Мы научимся писать программы, использующие WASI.

Компиляция в Wasm

Существует множество языков, которые можно скомпилировать в Wasm. Мы рассмотрим некоторые из них.

Основы ассемблера

Синтаксис ассемблера очень близок к JavaScript и поэтому является идеальным кандидатом для написания Wasm. Мы изучим основы ассемблера и создадим несколько изящных программ.

Обработка изображений на ассемблере

WebAssembly отлично подходит для ресурсоемких задач, таких как создание и обработка графики. Поэкспериментируем в этой области немного.

Присоединяйтесь ко мне в увлекательном путешествии по изучению WebAssembly!