Wasm up?
20 subscribers
2 photos
8 links
WebAssembly простыми словами: новости, практика, разборы, мемы и многое другое.

Будь готов к WASM!

Первое русскоязычное сообщество, посвященное WASM.
Download Telegram
Channel name was changed to «Wasm up?»
Channel photo updated
Hello, World Host! 👋

Здесь мы следим за развитием технологии WebAssembly (WASM) и всей экосистемы вокруг него: обсуждаем важные новости, разбираем интересные статьи, новые спецификации, изучаем возможности существующих инструментов и смотрим, как меняется современный toolchain.

Мемы и шутки приветствуются!

#wasm #webassembly
🔥1
Wasm up? pinned «Hello, World Host! 👋 Здесь мы следим за развитием технологии WebAssembly (WASM) и всей экосистемы вокруг него: обсуждаем важные новости, разбираем интересные статьи, новые спецификации, изучаем возможности существующих инструментов и смотрим, как меняется…»
#wasm #WebAssembly #tech #ai #xrpl

WebAssembly = WASM

Это про будущее. Это про то, что изучать пора уже многим разрабам.

WASM -- это краткое обозначение для WebAssembly
Это открытый бинарный формат инструкций для переносимой виртуальной машины, разработанный консорциумом W3C. Он позволяет коду, написанному на языках вроде C++, Rust или Go, выполняться в браузере и других средах с производительностью, близкой к нативной, обеспечивая при этом безопасную изоляцию процессов.

🚬
Браузер выступает универсальным «контейнером» для тяжелых вычислений: будь то генерация контента ИИ, исполнение смарт-контрактов в XRP Ledger или расчет физики в 3D-сценах — все эти технологии сходятся в одной точке, используя Wasm как стандартный бинарный формат для безопасного и быстрого кода.

...
Проще говоря, WASM технология позволяет перенести вычисления логики на устройста пользователей, не нагружая некие сервера... или перенося вычисления с уровня ОС на уровень Браузера пользователя.

Далее справка по технологии:
WebAssembly изначально создавался как стандарт для браузеров, и именно эта среда остается его главной точкой опоры: все ключевые возможности (от SIMD до WebGPU) реализуются сначала в движках Chrome, Firefox и Safari.

Подавляющее большинство современных ИИ-решений (таких как WebLLM и Transformers.js) ориентированы на запуск нейросетей непосредственно внутри браузера, используя его как универсальную платформу для приватного инференса без серверов.

Аналогично, блокчейн XRP Ledger выбрал WASM для своих смарт-контрактов во многом благодаря этой браузерной совместимости, что позволяет разработчикам создавать, тестировать и взаимодействовать с децентрализованными приложениями (dApps) напрямую через веб-интерфейсы, используя единую кодовую базу для фронтенда и логики контрактов.

3D-редакторы стали одним из самых ярких примеров успеха WebAssembly, поскольку именно браузерная среда диктует требования к их архитектуре. Такие инструменты, как Figma, Spline и игровые движки (Unity, Godot), переписали свои вычислительно сложные ядра (рендеринг, физику, геометрию) на C++ и Rust, компилируя их в Wasm. Это позволяет запускать профессиональные CAD-системы и 3D-моделлеры прямо в браузере с производительностью, неотличимой от десктопных приложений, используя единую кодовую базу для веба и нативных платформ.
---
Всë это позволяет мне провести узкой, но устойчивой тропой мои идеи так, что они будут применимы и полезны в будущем.

Применяю WASM и для простых нейросетей и для инкапсуляции бинарных исполнителей и для 3D и жду применения для XRPL

📌 @tech_di
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
#wasm_lab

🚀 11 июня был официально представлен WASI 0.3, который полностью изменил правила игры: наконец-то появился native async на уровне Component Model, заявленный как Language agnostic.

Давайте вместе заглянем «под капот», и проанализируем, за счет каких механизмов удалось добиться универсальности, а так же узнаем, приходится ли ради этого «раскрашивать» функции (спойлер - нет 🙂‍↔️)

Читать статью на Хабр: https://habr.com/ru/articles/1055048/

#wasm #webassembly #wasi

📌 @prowasm
👍3
#wasm_news

📰 Chicory больше нет (почти). Теперь это Endive - официальный проект Bytecode Alliance.

🔥 После недавнего анонса официально представлен Endive 1.0.

На мой взгляд, это одна из самых интересных новостей последних недель для Java-разработчиков, которые следят за WebAssembly.

Если вы раньше слышали про Chicory (чистая Java-реализация WebAssembly Runtime без нативных зависимостей), то теперь проект получил новое имя Endive и перешел под крыло Bytecode Alliance.

Почему это важно?

Во-первых, сама идея запуска WASM на JVM без JNI уже доказала свою жизнеспособность. За два года Chicory успел найти применение в самых разных проектах.

Во-вторых, Endive 1.0 приносит полноценную поддержку WasmGC на уровне интеграции с JVM. Если раньше объекты WASM были для Java практически "черным ящиком", то теперь структуры, массивы становятся обычными Java-объектами. Их собирает стандартный GC, не требуется отдельное хранилище ссылок или ручное управление жизненным циклом объектов. Для разработчика это означает гораздо более простую и привычную модель взаимодействия между Java и WASM.

Но самое любопытное это планы проекта.

Команда уже работает над интеграцией Cranelift (компилятор, который используется в Wasmtime). Если всё пойдет по плану, Endive сможет предложить почти нативную производительность, при этом сохранив главное преимущество в виде Java-like опыт разработки.

Кроме этого, разработчики уже начали экспериментировать с поддержкой Component Model. Если проект доведут до полноценной реализации, Java-разработчики (к коим относит себя автор канала) смогут загружать компоненты через типизированные интерфейсы, а не через JNI или другие костыли.

Посмотрим, насколько быстро Endive сможет догнать Wasmtime по производительности. Если интеграция с Cranelift окажется успешной, это может стать целевым рантаймом для JVM и стандартом в индустрии.

#wasm #webassembly #chicory #endive

@prowasm
🔥2
Рубрика #wasm_live

Здесь собираем интересные кейсы использования WebAssembly: от Big Tech до небольших, но очень изобретательных проектов.

Сегодня у нас на обзоре Pixtuoid - open-source TUI-дашборд на Rust, который визуализирует агентские сессии в виде анимированного пиксельного офиса. Он поддерживает множество популярных агентов (включая Claude Code и Codex CLI), превращая каждого из них в сотрудника за столом. Пока AI пишет код, на экране работает маленький офис: персонажи ходят между столами, отдыхают, а все происходящее отражает реальное состояние вашей сессии.

Недавно автор решил обновить демо-страницу проекта и попросил Claude Fable 5 сделать более красивый лендинг.

Вместо очередной записи работы приложения модель предложила другой подход: зачем вообще показывать запись, если можно встроить само приложение в сайт? В результате Rust-движок был скомпилирован в WASM, а лендинг превратился в полноценное приложение. Теперь посетитель видит не заранее подготовленную демонстрацию, а настоящий «живой» офис, который исполняется прямо в браузере. Более того, он синхронизирован с локальным временем пользователя: если открыть сайт в два часа ночи, в офисе тоже будет ночная смена.

Если приложение уже написано на Rust, его можно буквально сделать частью веб-страницы. В итоге пользователь взаимодействует не с имитацией или видеозаписью, а с настоящим приложением, которое работает локально в браузере. Очень изящное применение WebAssembly. 😅

Ссылка на обсуждение Reddit.

#wasm #webassembly #rust #pixtuoid

@prowasm
🔥2
#wasm_lab

Сегодня у нас на обзоре статья, посвященная WebAssembly backend в GCC.

Напомню, что backend - это часть компилятора, которая умеет превращать внутреннее представление программы в код для конкретной целевой архитектуры. Обычно backend генерирует код для процессоров вроде x86, ARM или RISC-V. Но в случае с WASM целевой "архитектурой" становится виртуальная ISA (Instruction Set Architecture) WebAssembly, а не физический процессор.

LLVM/Clang имеет зрелый backend для WebAssembly и может генерировать .wasm напрямую. Почему же GCC уже давно отстает?

Архитектура GCC опирается на привычную модель процессоров с переходами по меткам и конечным набором регистров. А WebAssembly устроен совсем иначе. В нем структурированный control flow, виртуальные регистры и жестко заданные сигнатуры вызовов.

Наличие в WASM виртуальных регистров (которых формально бесконечно много) ломает привычный allocator GCC, который десятилетиями рассчитывал на фиксированный набор регистров. В результате часть классических оптимизаций сегодня просто отключена.

Из-за этого разработчикам backend приходится идти на весьма необычные компромиссы.

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

Рекомендую почитать, если интересует внутренняя кухня компиляторов и то, почему Wasm заставляет переписывать привычные алгоритмы GCC. Статья читается на одном дыхании 🤨

#wasm #webassembly #gcc

@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍1
#wasm_lab

Сегодня у нас на обзоре статья с довольно провокационным названием: "Wasm is not quite a stack machine". И после прочтения начинаешь смотреть на WebAssembly немного иначе.

Все привыкли, что WASM - это "for a stack-based virtual machine". Так написано прямо на главной странице webassembly.org. Но автор предлагает обратить внимание на одну деталь.

У классических стековых VM (например, JVM) есть инструкции вроде dup, swap, over, которые позволяют свободно переиспользовать значения на стеке. В WASM этого практически нет. Есть только drop, а как только нужно повторно использовать вычисленное значение приходится сохранять его в local.

Получается, что выражения в WASM действительно вычисляются через стек. Но стоит выйти за рамки простой арифметики (да, мы любим такое на всевозможных демо 😎), модель быстро начинает напоминать скорее регистровую машину, где locals играют роль регистров, а стек оказывается лишь способом компактно записать выражение.

На мой взгляд, понимание таких деталей не менее полезно, чем знание WASI или Component Model.

Рекомендую к прочтению 😌

#wasm #webassembly

@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
3
#wasm_news

Сегодня на обзоре два свежих релиза продуктов, оказывающих заметное влияние на экосистему WASM.

☁️ Вышел wasmCloud 2.5.0:

- WASI 0.3 теперь включен по умолчанию благодаря переходу на Wasmtime 46. Это значит, что экосистема начинает жить уже в реалиях нового поколения WASI.

- Появилась поддержка multiplexed host plugins на базе implements из Component Model. Проще говоря, один компонент теперь может импортировать один и тот же интерфейс несколько раз и прозрачно работать сразу с несколькими реализациями.

- GC, async Component Model, threads, exception handling и другие proposal можно включать отдельно для каждого host или группы hosts, а не собирать отдельные runtime под разные сценарии.

- async WIT-интерфейсы для keyvalue и blobstore, улучшения Kubernetes-оператора, усиление безопасности Helm-чартов и множество небольших улучшений CLI wash.

📦 Вышел jco 1.25.2. Проект получил js-component-bindgen 2.0.11, где исправлены два бага в генерации биндингов:

- Корректный lowering результатов async host imports для stream/future

- Исправлена генерация кода для кодирования строк при flat string lowering

---

Всем продуктивной рабочей недели! 😎

#wasm #webassembly #wasmcloud #wit #wasi #jco

@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Forwarded from Frontend База
🎮 Кармагеддон прямо в браузере

Думал поиграть в старую любимую игру, но возиться с эмуляторами не хочется?

Разбирается портирование Carmageddon на WebAssembly: от эмуляции графики и звука до адаптации управления. Автор показывает, как работать с DOS-защитой, декодировать файлы формата ANI и организовать игровой цикл в браузере.


Интересный пример того, как классику можно оживить с помощью современных веб-технологий 👾

🌐 Перейти на сайт

💻 Frontend База | #WebAssembly #Игры #Разбор
🔥1
Рубрика #wasm_live

Здесь собираем интересные кейсы использования WebAssembly: от Big Tech до небольших, но очень изобретательных проектов.

Сегодня у нас на обзоре SpaceWasm - реализация WASM 1.0 от NASA для запуска WASM-модулей прямо на борту космических аппаратов 🚀 😱

Да-да, все верно: WebAssembly в космосе 🔥 Причем NASA рассматривает WASM не как экспериментальную технологию, а как основу для безопасного выполнения бортовой логики.

Зачем это понадобилось? Исторически сценарии управления космическими аппаратами сильно отличались от миссии к миссии. Каждая команда писала собственные механизмы для выполнения последовательностей команд, что усложняло сопровождение и повторное использование. SpaceWasm предлагает стандартизировать этот уровень через WebAssembly.

Во главу угла ставится безопасность. Вместо того чтобы добавлять новую функциональность непосредственно в бортовую логику (а это означает долгие месяцы верификации и тестирования), можно загрузить WASM-модуль, который будет выполняться в изолированной песочнице с жесткими ограничениями по памяти, времени исполнения и доступу к системным ресурсам. Для индустрии, где цена ошибки может измеряться стоимостью космической миссии, это очень сильный аргумент.

Однако, в данном случае за надежность приходится платить производительностью. По первым бенчмаркам, опубликованным на Reddit, SpaceWasm примерно в 6 раз медленнее самых быстрых интерпретаторов. Но, как вы понимаете, приоритеты совершенно другие: предсказуемость, детерминированность и безопасность важнее максимальной скорости.

WASM улетает в космос. Поздравляю, друзья! 💃

#wasm #webassembly #nasa

@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2