Hello, World Host! 👋
Здесь мы следим за развитием технологии WebAssembly (WASM) и всей экосистемы вокруг него: обсуждаем важные новости, разбираем интересные статьи, новые спецификации, изучаем возможности существующих инструментов и смотрим, как меняется современный toolchain.
Мемы и шутки приветствуются!
#wasm #webassembly
Здесь мы следим за развитием технологии WebAssembly (WASM) и всей экосистемы вокруг него: обсуждаем важные новости, разбираем интересные статьи, новые спецификации, изучаем возможности существующих инструментов и смотрим, как меняется современный toolchain.
Мемы и шутки приветствуются!
#wasm #webassembly
🔥1
Forwarded from Блокнот Техника [📌📒📟]
#wasm #WebAssembly #tech #ai #xrpl
WebAssembly = WASM
WASM -- это краткое обозначение для WebAssembly
🚬
Браузер выступает универсальным «контейнером» для тяжелых вычислений: будь то генерация контента ИИ, исполнение смарт-контрактов в XRP Ledger или расчет физики в 3D-сценах — все эти технологии сходятся в одной точке, используя Wasm как стандартный бинарный формат для безопасного и быстрого кода.
...
Проще говоря, WASM технология позволяет перенести вычисления логики на устройста пользователей, не нагружая некие сервера... или перенося вычисления с уровня ОС на уровень Браузера пользователя.
Далее справка по технологии:
Всë это позволяет мне провести узкой, но устойчивой тропой мои идеи так, что они будут применимы и полезны в будущем.
Применяю WASM и для простых нейросетей и для инкапсуляции бинарных исполнителей и для 3D и жду применения для XRPL
📌 @tech_di
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
#wasm_lab
🚀 11 июня был официально представлен WASI 0.3, который полностью изменил правила игры: наконец-то появился native async на уровне Component Model, заявленный как Language agnostic.
Давайте вместе заглянем «под капот», и проанализируем, за счет каких механизмов удалось добиться универсальности, а так же узнаем, приходится ли ради этого «раскрашивать» функции (спойлер - нет 🙂↔️)
Читать статью на Хабр: https://habr.com/ru/articles/1055048/
#wasm #webassembly #wasi
📌 @prowasm
🚀 11 июня был официально представлен WASI 0.3, который полностью изменил правила игры: наконец-то появился native async на уровне Component Model, заявленный как Language agnostic.
Давайте вместе заглянем «под капот», и проанализируем, за счет каких механизмов удалось добиться универсальности, а так же узнаем, приходится ли ради этого «раскрашивать» функции (спойлер - нет 🙂↔️)
Читать статью на Хабр: https://habr.com/ru/articles/1055048/
#wasm #webassembly #wasi
📌 @prowasm
Хабр
Асинхронность в WebAssembly (WASM)
Зачем нам нужна асинхронность WASI 0.2: имитация async WASI 0.3 async future и stream Stack switching Threads Tasks Backpressure Reentrancy Completion-based модель Structured Concurrency Cancellation...
👍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
📰 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
Bytecode Alliance
Endive and the Next Chapter of WebAssembly on the JVM
🔥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
Здесь собираем интересные кейсы использования 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
GitHub
GitHub - IvanWng97/pixtuoid: Terminal pixel-art office for AI coding agents
Terminal pixel-art office for AI coding agents. Contribute to IvanWng97/pixtuoid development by creating an account on GitHub.
🔥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
Сегодня у нас на обзоре статья, посвященная 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
GitHub
Please Support Arbitrary Labels and Gotos. · Issue #796 · WebAssembly/design
I'd like to point out that I haven't been involved in the web assembly effort, and I'm not maintaining any large or widely used compilers (just my own toy-ish language, minor contributi...
❤3👍1
#wasm_lab
Сегодня у нас на обзоре статья с довольно провокационным названием: "Wasm is not quite a stack machine". И после прочтения начинаешь смотреть на WebAssembly немного иначе.
Все привыкли, что WASM - это "for a stack-based virtual machine". Так написано прямо на главной странице webassembly.org. Но автор предлагает обратить внимание на одну деталь.
У классических стековых VM (например, JVM) есть инструкции вроде
Получается, что выражения в WASM действительно вычисляются через стек. Но стоит выйти за рамки простой арифметики (да, мы любим такое на всевозможных демо😎 ), модель быстро начинает напоминать скорее регистровую машину, где
На мой взгляд, понимание таких деталей не менее полезно, чем знание WASI или Component Model.
Рекомендую к прочтению 😌
#wasm #webassembly
@prowasm
Сегодня у нас на обзоре статья с довольно провокационным названием: "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
purplesyringa's blog
Wasm is not quite a stack machine
Everyone knows Wasm is a stack machine. Wikipedia says so, the official Wasm design specification says so, you get it. I thought so too.
That is, until I started writing Wasm code – not compiling for Wasm, but writing the instructions by hand. And I found…
That is, until I started writing Wasm code – not compiling for Wasm, but writing the instructions by hand. And I found…
❤3
#wasm_news
Сегодня на обзоре два свежих релиза продуктов, оказывающих заметное влияние на экосистему WASM.
☁️ Вышел wasmCloud 2.5.0:
- WASI 0.3 теперь включен по умолчанию благодаря переходу на Wasmtime 46. Это значит, что экосистема начинает жить уже в реалиях нового поколения WASI.
- Появилась поддержка multiplexed host plugins на базе
- GC, async Component Model, threads, exception handling и другие proposal можно включать отдельно для каждого host или группы hosts, а не собирать отдельные runtime под разные сценарии.
-
📦 Вышел jco 1.25.2. Проект получил js-component-bindgen 2.0.11, где исправлены два бага в генерации биндингов:
- Корректный
- Исправлена генерация кода для кодирования строк при
---
Всем продуктивной рабочей недели!😎
#wasm #webassembly #wasmcloud #wit #wasi #jco
@prowasm
Сегодня на обзоре два свежих релиза продуктов, оказывающих заметное влияние на экосистему 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
Wasmcloud
wasmCloud 2.5.0: Wasmtime 46, WASI 0.3, and multiplexed WebAssembly host plugins | wasmCloud
wasmCloud 2.5.0 ships with Wasmtime 46, WASI 0.3 on by default, configurable WebAssembly proposals, and `(implements ..)` multiplexing for host plugins.
🔥3
Forwarded from Frontend База
🎮 Кармагеддон прямо в браузере
Думал поиграть в старую любимую игру, но возиться с эмуляторами не хочется?
Интересный пример того, как классику можно оживить с помощью современных веб-технологий 👾
🌐 Перейти на сайт
💻 Frontend База | #WebAssembly #Игры #Разбор
Думал поиграть в старую любимую игру, но возиться с эмуляторами не хочется?
Разбирается портирование 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
Здесь собираем интересные кейсы использования 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
GitHub
GitHub - nasa/spacewasm: A flight-compliant WebAssembly interpreter.
A flight-compliant WebAssembly interpreter. Contribute to nasa/spacewasm development by creating an account on GitHub.
🔥2
