Rust и WebAssembly: вычисления в браузере
Анализатор «Мера» — общий пример этой серии. От исходной модели постепенно переходим к готовому договору выпуска. Каждый урок раскрывает один результат; кодовые фрагменты в статьях поясняют изменения в полных исходниках архива.
Предпосылки: основы HTML и JavaScript, работа с каталогами и командной строкой. Среда примеров: Rust 1.99.0, edition 2021, wasm-bindgen и CLI 0.2.129; браузерные ES modules.
| Урок | Результат |
|---|---|
| 1. Задача для WebAssembly и контракт анализатора | Выделить чистое вычисление и определить точный смысл статистики текста. |
| 2. Строки, заимствование и владение в Rust | Обработать UTF-8 без копирования каждой строки; различить байты и символы. |
| 3. Result и ошибки на границе JavaScript | Передавать ошибки входных данных как контролируемый результат, сохраняя контракт. |
| 4. Сборка Rust-модуля для браузера | Связать cargo target и wasm-bindgen CLI и описать полный состав браузерного пакета. |
| 5. Асинхронная загрузка и интерфейс анализатора | Загрузить модуль один раз, показать состояние и вывести результат безопасно. |
| 6. Числовые массивы и стоимость передачи данных | Построить гистограмму длин строк с понятной границей копирования. |
| 7. Web Worker и актуальный результат вычисления | Перенести вычисление в отдельный поток, сопоставляя сообщения с запросами. |
| 8. Запасная реализация с тем же контрактом | Сохранить результат при недоступности Wasm и явно показать выбранный движок. |
| 9. Как сравнивать JavaScript и WebAssembly | Описать измерение всей операции, отделив прогрев, загрузку и передачу данных. |
| 10. Передача Wasm-модуля в веб-проект | Подготовить состав артефакта, ограничения входа и договор совместимости без публикации. |
Скачать исходники. Все курсы. Партия из 100 уроков.
Материалы опубликованы. Примеры не запускались, зависимости не устанавливались, тесты и измерения не выполнялись; описанный вывод является ожидаемым. Исходники требуют отдельной технической проверки перед использованием учебного приложения.