Skip to content

About

Практическое руководство по Rust API браузера через WebAssembly

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Rust web_sys by doing

Практическое руководство по работе с библиотекой web_sys в Rust


О книге

Эта книга — практическое руководство по созданию полноценных веб-приложений на Rust с использованием библиотеки web_sys — основного инструмента для доступа к браузерному API из WASM-кода.

Вместо сухого пересказа документации мы строим настоящее приложение и последовательно добавляем в него новые возможности: работу с DOM, обработку событий, сетевые запросы, файловую систему, графику, аудио и видео, параллельные вычисления и многое другое. Каждая глава — это законченный, работающий пример, который можно сразу запустить и применить в своём проекте.

Принцип книги — «learning by doing»: минимум теории, максимум кода, который решает реальные задачи.

Кому подойдёт книга

  • Разработчикам, уже знакомым с основами Rust и желающим выйти в веб;
  • Frontend-инженерам, которые хотят перенести тяжёлые части приложения на Rust/WASM;
  • Тем, кто интересуется WebAssembly и хочет понять, как выглядит «настоящая» веб-разработка на Rust;
  • Всем, кто предпочитает учиться на примерах, а не на абстрактных описаниях.

Что рассматривается в книге

  • Настройка окружения: wasm-pack, wasm-bindgen, trunk, интеграция с web_sys и js-sys;
  • DOM, типизированные элементы, динамическое создание и модификация узлов;
  • События: мышь, клавиатура, формы, делегирование, JsValue как граница Rust ↔ JavaScript;
  • Сетевые запросы через fetch, Request, Response, JsFuture, retry, timeout, CORS;
  • Streams: ReadableStream, WritableStream, TransformStream, backpressure;
  • Файлы: File API, File System Access API, OPFS, Blob, Object URL, скачивание;
  • Графика: Canvas, ImageData, OffscreenCanvas, фильтры на Rust;
  • Медиа: WebCodecs, AudioWorklet, MediaStream, MP4/WebM, demuxing/muxing;
  • Хранение данных: localStorage, IndexedDB, Cache API;
  • Service Worker и офлайн-архитектура;
  • Параллелизм: Web Workers, SharedArrayBuffer, Typed Arrays, Scheduling;
  • API браузера: Clipboard, Notifications, Geolocation, MediaDevices;
  • Сеть в реальном времени: WebSocket, WebTransport, WebRTC;
  • GPU: WebGL, WebGPU, compute shaders;
  • Безопасность и криптография: WebAuthn, Web Crypto;
  • Обработка ошибок, паника, восстановление после сбоев.

Сопутствующий проект

Все примеры из книги собираются в единое работающее приложение, которое развивается от главы к главе:

🔗 Репозиторий проекта: https://github.com/rustkas/hello-wasm02

Рекомендуется параллельно читать главу и открывать соответствующий коммит в проекте — так вы увидите не только отдельный пример, но и то, как он встраивается в реальную кодовую базу.


Структура репозитория

  • Все главы книги находятся в папке chapters;
  • Формат имени файла: chapter-<номер>.md — глава, chapter-<номер>.<подномер>.md — подглава;
  • Часть подглав использует отрицательные номера (chapter-22.-01.md) — это сохраняет порядок вывода в оглавлении;
  • Оглавление в этом README генерируется автоматически из заголовков # ... в начале каждого файла.

Содержание


Как читать книгу

Каждую главу можно изучать независимо, но для последовательного освоения материала рекомендуется идти по порядку — от первой главы к последней. Подглавы внутри одной главы логически дополняют друг друга и раскрывают тему шаг за шагом.

Оптимальный режим работы:

  1. Прочитать главу;
  2. Открыть соответствующий коммит в сопутствующем проекте;
  3. Повторить код у себя, внося собственные изменения;
  4. Использовать пример как основу для своих задач.

Как внести вклад

Если вы нашли ошибку, опечатку или хотите предложить улучшение — откройте Issue или пришлите Pull Request. Приветствуются:

  • исправления опечаток и неточностей;
  • уточнения в примерах кода;
  • предложения по новым темам;
  • переводы глав.

Лицензия

Материалы книги распространяются под лицензией MIT. Подробности — в файле LICENSE.

About

Практическое руководство по Rust API браузера через WebAssembly

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors