#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.
🔥3
#wasm_lab
Стек против регистров: почемуPolkadot ушел с WASM?
Сегодня у нас на обзоре авторская статья⌨️
Философия WASM про "собрал один бинарь и запускаешь где угодно в максимальной изоляции". Но, как и в любой технологии, за этим скрываются интересные компромиссы.
В статье я попробовал разобраться:
🔹 Чем стековая модель VM отличается от регистровой и где эта разница реально что-то меняет
🔹 Почему WASM не совсем честная стек-машина
🔹 Что вынужден делать single-pass компилятор WASM
🔹 Как компиляция превращается в вектор атаки
🔹 За что именно WASM платит вне браузера
И главное, где же все таки реалистичная ниша WASM вне вкладки браузера. У меня есть версия, но интересно услышать и вашу 😉
Если вам интересны такие темы — добро пожаловать к прочтению 👇
🔗 https://habr.com/ru/articles/1058984/
#wasm #webassembly
@prowasm
Стек против регистров: почему
Сегодня у нас на обзоре авторская статья
Философия WASM про "собрал один бинарь и запускаешь где угодно в максимальной изоляции". Но, как и в любой технологии, за этим скрываются интересные компромиссы.
В статье я попробовал разобраться:
🔹 Чем стековая модель VM отличается от регистровой и где эта разница реально что-то меняет
🔹 Почему WASM не совсем честная стек-машина
🔹 Что вынужден делать single-pass компилятор WASM
🔹 Как компиляция превращается в вектор атаки
🔹 За что именно WASM платит вне браузера
И главное, где же все таки реалистичная ниша WASM вне вкладки браузера. У меня есть версия, но интересно услышать и вашу 😉
Если вам интересны такие темы — добро пожаловать к прочтению 👇
🔗 https://habr.com/ru/articles/1058984/
#wasm #webassembly
@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#wasm_news
Сегодня на обзоре два свежих релиза продуктов, оказывающих заметное влияние на экосистему WASM.
⚙️ Emscripten 6.0 (на самом деле серия 6.0.x) - один из самых значимых релизов компилятора для WASM за последнее время. Помимо большого количества улучшений, он закладывает основу для следующего поколения WASM.
Главные изменения:
- wasm64 становится ближе к реальности. Вместо специфичного
- Динамическая линковка теперь "настоящая". Emscripten больше не использует FAKE_DYLIBS по умолчанию.
- Появилась экспериментальная интеграция с wasm-bindgen. Теперь проекты на Rust и JavaScript становятся значительно ближе друг к другу, а смешанные Rust/C++ проекты проще в сопровождении.
- Продолжается адаптация под современные возможности WASM. В последних патч-релизах появились FMA intrinsics с поддержкой Relaxed SIMD, автоматическая инициализация ES-модулей через top-level
---
🚀 Wasmer 7.2.0 - релиз получился не самым громким, но с несколькими важными изменениями для разработчиков рантаймов и серверных WASM-приложений.
Главные изменения:
- Появилась экспериментальная возможность прерывать выполнение WASM. Теперь рантайм может безопасно остановить длительно выполняющийся код. Это важная возможность для серверных платформ и sandbox.
- Cranelift получил поддержку Exception Handling на macOS. Поддержка теперь доступна и на Mach-O, что делает поведение рантайма более единообразным между платформами.
- Компиляция стала лучше масштабироваться по ядрам CPU. Переработана параллельная компиляция для LLVM и Cranelift, поэтому большие модули будут собираться заметно эффективнее на многоядерных машинах.
- Возвращён backend V8. После длительного перерыва движок снова поддерживается и теперь покрывается CI, что расширяет варианты исполнения WebAssembly внутри Wasmer.
- Упрощается экосистема движков. Из Wasmer удалены backend'ы WAMR и Wasmi, а также прекращена поддержка x86_64 macOS, т.к. проект окончательно ориентируется на Apple Silicon.
- Улучшения WASIX и новые команды CLI. Продолжается развитие сетевого стека WASIX, а в CLI появились команды
---
Подписывайтесь, если хотите следить за новостями из волшебного мира WebAssembly🕺
#wasm #webassembly #wasmer #wasix #cranelift #llvm #emscripten #llvm #wasm64 #simd
@prowasm
Сегодня на обзоре два свежих релиза продуктов, оказывающих заметное влияние на экосистему WASM.
⚙️ Emscripten 6.0 (на самом деле серия 6.0.x) - один из самых значимых релизов компилятора для WASM за последнее время. Помимо большого количества улучшений, он закладывает основу для следующего поколения WASM.
Главные изменения:
- wasm64 становится ближе к реальности. Вместо специфичного
-sMEMORY64 теперь используется стандартный флаг -m64, как и в обычном LLVM/Clang. Это важный шаг к полноценной поддержке Memory64 Proposal.- Динамическая линковка теперь "настоящая". Emscripten больше не использует FAKE_DYLIBS по умолчанию.
-shared начинает создавать реальные side modules. - Появилась экспериментальная интеграция с wasm-bindgen. Теперь проекты на Rust и JavaScript становятся значительно ближе друг к другу, а смешанные Rust/C++ проекты проще в сопровождении.
- Продолжается адаптация под современные возможности WASM. В последних патч-релизах появились FMA intrinsics с поддержкой Relaxed SIMD, автоматическая инициализация ES-модулей через top-level
await.---
🚀 Wasmer 7.2.0 - релиз получился не самым громким, но с несколькими важными изменениями для разработчиков рантаймов и серверных WASM-приложений.
Главные изменения:
- Появилась экспериментальная возможность прерывать выполнение WASM. Теперь рантайм может безопасно остановить длительно выполняющийся код. Это важная возможность для серверных платформ и sandbox.
- Cranelift получил поддержку Exception Handling на macOS. Поддержка теперь доступна и на Mach-O, что делает поведение рантайма более единообразным между платформами.
- Компиляция стала лучше масштабироваться по ядрам CPU. Переработана параллельная компиляция для LLVM и Cranelift, поэтому большие модули будут собираться заметно эффективнее на многоядерных машинах.
- Возвращён backend V8. После длительного перерыва движок снова поддерживается и теперь покрывается CI, что расширяет варианты исполнения WebAssembly внутри Wasmer.
- Упрощается экосистема движков. Из Wasmer удалены backend'ы WAMR и Wasmi, а также прекращена поддержка x86_64 macOS, т.к. проект окончательно ориентируется на Apple Silicon.
- Улучшения WASIX и новые команды CLI. Продолжается развитие сетевого стека WASIX, а в CLI появились команды
wasmer package search и wasmer package show, упрощающие работу с пакетами.---
Подписывайтесь, если хотите следить за новостями из волшебного мира WebAssembly
#wasm #webassembly #wasmer #wasix #cranelift #llvm #emscripten #llvm #wasm64 #simd
@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release 6.0.3 · emscripten-core/emscripten
What's Changed
Fixed UTF8ToString with GROWABLE_ARRAYBUFFERS set. String decoding now
copies the data when the heap buffer is resizable, just like it does in
the shared memory case. (#27242)
A...
Fixed UTF8ToString with GROWABLE_ARRAYBUFFERS set. String decoding now
copies the data when the heap buffer is resizable, just like it does in
the shared memory case. (#27242)
A...
👍3
#wasm_live
📰 RightNow AI предлагает превратить LLM-агентов в WASM-бинарники
Появился очень необычный проект Auto от RightNow AI. Идея звучит как "компилятор для агентского поведения". Вместо того чтобы каждый раз отправлять одинаковые запросы в LLM, Auto записывает поведение агента, находит повторяющиеся детерминированные участки и компилирует их в верифицированные WASM-бинарники. Всё, что не удалось свести к детерминированной логике, продолжает выполняться через обычную LLM. Почему это интересно?
Во-первых, WASM здесь используется не просто как переносимый формат, а как безопасный sandbox для исполнения поведения агента.
Во-вторых, авторы заявляют довольно впечатляющие результаты: после "накопления опыта" стоимость выполнения типовых задач снижается примерно с 59 до 2 микродолларов за запрос (на задачу) 🤯
Проще говоря:
- повторяющиеся фрагменты поведения больше не исполняются через frontier-модель. Вместо очередного промпта выполняется WASM-бинарник. Экономим токены
- снижается стоимость инференса
- выполнение WASM занимает микросекунды вместо сотен миллисекунд ожидания ответа модели
😮 По сути, Auto "кэширует" опыт LLM в виде WASM-бинарников. Повторные задачи больше не требуют генерации токенов, они выполняются локально, а к модели система обращается только при появлении новых сценариев
Если подобных проектов станет больше, WASM вполне может занять важное место в инфраструктуре AI-систем, а не только в браузере и серверных рантаймах.
💡 В первую очередь прошу обратить внимание тех, кто строит агентские системы или LLM-пайплайны, а также ML-инженерам.
#wasm #webassembly #ai #agents
@prowasm
📰 RightNow AI предлагает превратить LLM-агентов в WASM-бинарники
Появился очень необычный проект Auto от RightNow AI. Идея звучит как "компилятор для агентского поведения". Вместо того чтобы каждый раз отправлять одинаковые запросы в LLM, Auto записывает поведение агента, находит повторяющиеся детерминированные участки и компилирует их в верифицированные WASM-бинарники. Всё, что не удалось свести к детерминированной логике, продолжает выполняться через обычную LLM. Почему это интересно?
Во-первых, WASM здесь используется не просто как переносимый формат, а как безопасный sandbox для исполнения поведения агента.
Во-вторых, авторы заявляют довольно впечатляющие результаты: после "накопления опыта" стоимость выполнения типовых задач снижается примерно с 59 до 2 микродолларов за запрос (на задачу) 🤯
Проще говоря:
- повторяющиеся фрагменты поведения больше не исполняются через frontier-модель. Вместо очередного промпта выполняется WASM-бинарник. Экономим токены
- снижается стоимость инференса
- выполнение WASM занимает микросекунды вместо сотен миллисекунд ожидания ответа модели
Если подобных проектов станет больше, WASM вполне может занять важное место в инфраструктуре AI-систем, а не только в браузере и серверных рантаймах.
💡 В первую очередь прошу обратить внимание тех, кто строит агентские системы или LLM-пайплайны, а также ML-инженерам.
#wasm #webassembly #ai #agents
@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - RightNow-AI/auto: the agi compiler: records llm agent behavior, proves what repeats, and compiles it into verified, sandboxed…
the agi compiler: records llm agent behavior, proves what repeats, and compiles it into verified, sandboxed wasm binaries that run for microdollars. nothing figured out twice, paper: https://arxiv....
🔥3👍2
#wasm_news
Пару дней назад разработчик Hexana представил небольшое, но очень полезное обновление для тех, кто работает с Component Model.
Теперь при открытии бинарника можно сразу просматривать встроенные Core модули в виде WAT, не извлекая их в отдельные файлы. Если внутри компонента несколько модулей, между ними можно переключаться через встроенный селектор.
На практике это сильно упрощает анализ компонентов. Почему?
Component Model - это не просто обычный
Подобные улучшения делают работу с Component Model гораздо приятнее😉
Продуктивной рабочей недели!
#wasm #webassembly #hexana
@prowasm
Пару дней назад разработчик Hexana представил небольшое, но очень полезное обновление для тех, кто работает с Component Model.
Теперь при открытии бинарника можно сразу просматривать встроенные Core модули в виде WAT, не извлекая их в отдельные файлы. Если внутри компонента несколько модулей, между ними можно переключаться через встроенный селектор.
На практике это сильно упрощает анализ компонентов. Почему?
Component Model - это не просто обычный
.wasm. Это контейнер, внутри которого находятся полноценные Core модули со своей логикой. Раньше Hexana показывал структуру самого компонента, а для анализа содержимого встроенных модулей их приходилось сначала извлекать. Теперь этот шаг больше не нужен.Подобные улучшения делают работу с Component Model гораздо приятнее
Продуктивной рабочей недели!
#wasm #webassembly #hexana
@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
Reddit
From the WebAssembly community on Reddit: Component Model binaries embed whole core modules — we now render each one as WAT in…
Posted by minamoto108 - 2 votes and 0 comments
👍3
Рубрика #wasm_live
Здесь собираем интересные кейсы использования WebAssembly: от Big Tech до небольших, но очень изобретательных проектов.
🎮 The Simpsons: Hit & Run теперь работает прямо в браузере.
Разработчик портировал оригинальную PC-версию игры на WASM + WebGL. Причем это не стриминг и не эмуляция, игра по настоящему запускается в браузере как нативное приложение.
Интересные инженерные решения, которые пришлось реализовать:
🔊 Игра была написана в расчете на синхронный аудио API, тогда как Web Audio API работает совсем по-другому. Автору пришлось реализовать собственные lock-free структуры в общей памяти и построить механизм обмена данными между основным потоком и AudioWorklet без блокировок.
📦 Вместо скачивания архивов целиком (около 500 МБ) игровые данные подгружаются по мере необходимости через Cloudflare R2 и Worker, который отдает файлы чанками по 1 МБ. В результате игра стартует быстрее, а кэш браузера используется значительно эффективнее.
Кто бы мог подумать, что появится технология, которая сегодня позволит запускать полноценные AAA-игры начала 2000-х в браузере?🤣
Рекомендую попробовать - игра действительно переносит тебя в 2000-е.
#wasm #webassembly #thesimpsons
@prowasm
Здесь собираем интересные кейсы использования WebAssembly: от Big Tech до небольших, но очень изобретательных проектов.
🎮 The Simpsons: Hit & Run теперь работает прямо в браузере.
Разработчик портировал оригинальную PC-версию игры на WASM + WebGL. Причем это не стриминг и не эмуляция, игра по настоящему запускается в браузере как нативное приложение.
Интересные инженерные решения, которые пришлось реализовать:
🔊 Игра была написана в расчете на синхронный аудио API, тогда как Web Audio API работает совсем по-другому. Автору пришлось реализовать собственные lock-free структуры в общей памяти и построить механизм обмена данными между основным потоком и AudioWorklet без блокировок.
📦 Вместо скачивания архивов целиком (около 500 МБ) игровые данные подгружаются по мере необходимости через Cloudflare R2 и Worker, который отдает файлы чанками по 1 МБ. В результате игра стартует быстрее, а кэш браузера используется значительно эффективнее.
Кто бы мог подумать, что появится технология, которая сегодня позволит запускать полноценные AAA-игры начала 2000-х в браузере?
Рекомендую попробовать - игра действительно переносит тебя в 2000-е.
#wasm #webassembly #thesimpsons
@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
#wasm_news
🥳 Вышел Wasmtime 47.0
Что изменилось:
- WasmGC теперь включен по умолчанию. Это важный шаг для языков с автоматической сборкой мусора (Java, Kotlin, C#, Dart и др.) и всей экосистемы Component Model. Теперь GC не нужно отдельно включать в конфигурации движка.
- Exception Handling Proposal также включен по умолчанию. Это упрощает перенос языков с привычной моделью
- Продолжается развитие Component Model. Появились новые API, улучшена работа с
- Cranelift получил очередную порцию оптимизаций. Среди них поддержка Compact Unwind на macOS, новые возможности для RISC-V и дополнительные оптимизации генерации машинного кода.
- Из Wasmtime окончательно убрали wasi-common и поддержку wasi-threads. Проект продолжает переход на современный стек WASI 0.3, поэтому старые механизмы постепенно уходят из экосистемы.
Изменения довольно фундаментальные. Благодаря включению WasmGC и Exception Handling по умолчанию WASM становится гораздо более привлекательной целевой платформой для managed-языков. Релиз настолько важен, что ему посвящена статья в блоге Bytecode Alliance.
#wasm #webassembly #wasmtime
@prowasm
🥳 Вышел Wasmtime 47.0
Что изменилось:
- WasmGC теперь включен по умолчанию. Это важный шаг для языков с автоматической сборкой мусора (Java, Kotlin, C#, Dart и др.) и всей экосистемы Component Model. Теперь GC не нужно отдельно включать в конфигурации движка.
- Exception Handling Proposal также включен по умолчанию. Это упрощает перенос языков с привычной моделью
try/catch в WASM. - Продолжается развитие Component Model. Появились новые API, улучшена работа с
ArrayRef, оптимизированы адаптеры между компонентами и добавлены механизмы для более эффективного управления конкурентными вызовами.- Cranelift получил очередную порцию оптимизаций. Среди них поддержка Compact Unwind на macOS, новые возможности для RISC-V и дополнительные оптимизации генерации машинного кода.
- Из Wasmtime окончательно убрали wasi-common и поддержку wasi-threads. Проект продолжает переход на современный стек WASI 0.3, поэтому старые механизмы постепенно уходят из экосистемы.
Изменения довольно фундаментальные. Благодаря включению WasmGC и Exception Handling по умолчанию WASM становится гораздо более привлекательной целевой платформой для managed-языков. Релиз настолько важен, что ему посвящена статья в блоге Bytecode Alliance.
#wasm #webassembly #wasmtime
@prowasm
GitHub
Release v47.0.0: Release Wasmtime 47.0.0 (#13898) · bytecodealliance/wasmtime
47.0.0
Released 2026-07-20.
Added
Wasmtime now has the WebAssembly GC proposal enabled by default.
#13594
Wasmtime now has the WebAssembly exception-handling proposal enabled by
default.
#13603...
Released 2026-07-20.
Added
Wasmtime now has the WebAssembly GC proposal enabled by default.
#13594
Wasmtime now has the WebAssembly exception-handling proposal enabled by
default.
#13603...
🔥3
#wasm_news
Неожиданная новость - WAMR покидает Bytecode Alliance
WebAssembly Micro Runtime (WAMR) больше не будет развиваться как проект Bytecode Alliance. Команды объявили, что дальнейшая разработка продолжится уже как независимый open-source проект.
Это не закрытие проекта и не прекращение разработки. WAMR продолжит развиваться, просто с собственной моделью управления.
В Bytecode Alliance объясняют решение тем, что со временем у организации и WAMR сформировались разные приоритеты. Разделение должно позволить каждой стороне быстрее двигаться в своем направлении.
При этом сам Bytecode Alliance остается сосредоточен на развитии Wasmtime, WASI, Component Model и других фундаментальных технологий экосистемы.
WAMR уже давно занял свою нишу как один из самых популярных рантаймов для Embedded, IoT и Edge-устройств. Теперь будет интересно посмотреть, изменится ли темп развития проекта и появятся ли новые стратегические партнерства.
#wasm #webassembly #wasmtime #wamr
@prowasm
Неожиданная новость - WAMR покидает Bytecode Alliance
WebAssembly Micro Runtime (WAMR) больше не будет развиваться как проект Bytecode Alliance. Команды объявили, что дальнейшая разработка продолжится уже как независимый open-source проект.
Это не закрытие проекта и не прекращение разработки. WAMR продолжит развиваться, просто с собственной моделью управления.
В Bytecode Alliance объясняют решение тем, что со временем у организации и WAMR сформировались разные приоритеты. Разделение должно позволить каждой стороне быстрее двигаться в своем направлении.
При этом сам Bytecode Alliance остается сосредоточен на развитии Wasmtime, WASI, Component Model и других фундаментальных технологий экосистемы.
WAMR уже давно занял свою нишу как один из самых популярных рантаймов для Embedded, IoT и Edge-устройств. Теперь будет интересно посмотреть, изменится ли темп развития проекта и появятся ли новые стратегические партнерства.
#wasm #webassembly #wasmtime #wamr
@prowasm
Bytecode Alliance
An Update on WAMR and the Bytecode Alliance
We’re writing to share some news about the future of the Bytecode Alliance and the WebAssembly Micro Runtime (WAMR).
🔥3
#wasm_lab
Сегодня у нас на обзоре статья "Dynamic linking in WebAssembly with WASIX" от команды Wasmer.
Главная идея очень простая - Python в WASIX наконец-то научился работать не только с "чистыми" Python-пакетами, но и с библиотеками, которые содержат нативный код. Это стало возможным благодаря поддержке Dynamic Linking.
Но реализовать это в WASM оказалось совсем не так просто.
В статье авторы показывают, какие проблемы пришлось решить:
🔹 Как заставить несколько WASM-модулей безопасно разделять одну область памяти.
🔹 Что такое PIC (Position Independent Code) - код, который можно загрузить в любое место памяти без перекомпиляции, и почему без него Dynamic Linking невозможен.
🔹 Как работают
🔹 Почему ради всего этого команде даже пришлось дорабатывать LLVM и собственный рантайм.
Отличная статья, которая показывает, сколько фундаментальных ограничений WASM приходится обходить, чтобы привычные механизмы из мира Linux начали работать и здесь.
#wasm #webassembly #python #wasix
@prowasm
Сегодня у нас на обзоре статья "Dynamic linking in WebAssembly with WASIX" от команды Wasmer.
Главная идея очень простая - Python в WASIX наконец-то научился работать не только с "чистыми" Python-пакетами, но и с библиотеками, которые содержат нативный код. Это стало возможным благодаря поддержке Dynamic Linking.
Но реализовать это в WASM оказалось совсем не так просто.
В статье авторы показывают, какие проблемы пришлось решить:
🔹 Как заставить несколько WASM-модулей безопасно разделять одну область памяти.
🔹 Что такое PIC (Position Independent Code) - код, который можно загрузить в любое место памяти без перекомпиляции, и почему без него Dynamic Linking невозможен.
🔹 Как работают
dlopen() (загрузка внешней библиотеки во время работы программы) и dlsym() (поиск нужной функции внутри этой библиотеки), если под капотом у вас WASM а не обычная ОС.🔹 Почему ради всего этого команде даже пришлось дорабатывать LLVM и собственный рантайм.
Отличная статья, которая показывает, сколько фундаментальных ограничений WASM приходится обходить, чтобы привычные механизмы из мира Linux начали работать и здесь.
#wasm #webassembly #python #wasix
@prowasm
wasmer.io
Dynamic linking in WebAssembly with WASIX · Blog · Wasmer
At Wasmer, we've had a [WASIX](<https://wasix.org/>) build of Python for a long time now. It works too; you can run scripts, get a REPL, and even pull i...
👍4
#wasm_lab
Недавно публиковал статью WebAssembly (WASM) — не серебряная пуля, и в комментариях мне ответил один из пользователей (а по совместительству автор на Хабр): "Мы проверяли на собственном большом проекте где важна производительность и получили аналогичные результаты. Кому интересно можно почитать наше расследование".
Конечно же нам интересно🥰
Статья называется "Блеск и нищета WebAssembly" и опубликована она в сентябре 2024 года. Она посвящена R&D процесса в экспериментах с WASM, а также, по моему мнению, является хорошей входной точкой для изучения новой технологии (с максимальной актуальностью на момент написания).
Автор прошел серьезный путь:
- выбрал WAMR как runtime
- портировал C++-библиотеки в WASM
- столкнулся с ограничениями wasm32, ABI, отладкой и SIMD
- провел серьезную работу по профилированию и оптимизации
Главный вывод статьи тогда: технология очень перспективная, но еще сырая для крупных production-проектов.
Очень любопытно смотреть уже из 2026 года. Многие проблемы, о которых писал автор, действительно начали решаться. Появился WASM 3.0, активно развивается Component Model, появился WASI 0.3 с нативной async-моделью. Исключения, GC, SIMD и многие proposals уже перестали быть экзотикой и получили поддержку в современных рантаймах.
Но некоторые выводы статьи по-прежнему актуальны.
Если вы переносите большой C/C++-проект в WASM, архитектурные компромиссы никуда не делись. Стоимость копирования данных между host и sandbox, особенности ABI, выбор runtime и вопросы производительности по-прежнему оказывают куда большее влияние, чем сама спецификация.
Отдельно интересно, что автор называл wasm64 слишком экспериментальным. В 2026 ситуация заметно лучше: memory64 уже вошла в экосистему, однако полноценная поддержка во всех движках и браузерах все еще на подходе.
Статья отлично показывает, как выглядело состояние WASM в 2024 году. И именно поэтому ее полезно читать сегодня. Можно оценить, какие прогнозы оказались верными, какие проблемы уже решены, а какие до сих пор сопровождают любой серьезный проект.
Приятного чтения!😭
#wasm #webassembly
@prowasm
Недавно публиковал статью WebAssembly (WASM) — не серебряная пуля, и в комментариях мне ответил один из пользователей (а по совместительству автор на Хабр): "Мы проверяли на собственном большом проекте где важна производительность и получили аналогичные результаты. Кому интересно можно почитать наше расследование".
Конечно же нам интересно
Статья называется "Блеск и нищета WebAssembly" и опубликована она в сентябре 2024 года. Она посвящена R&D процесса в экспериментах с WASM, а также, по моему мнению, является хорошей входной точкой для изучения новой технологии (с максимальной актуальностью на момент написания).
Автор прошел серьезный путь:
- выбрал WAMR как runtime
- портировал C++-библиотеки в WASM
- столкнулся с ограничениями wasm32, ABI, отладкой и SIMD
- провел серьезную работу по профилированию и оптимизации
Главный вывод статьи тогда: технология очень перспективная, но еще сырая для крупных production-проектов.
Очень любопытно смотреть уже из 2026 года. Многие проблемы, о которых писал автор, действительно начали решаться. Появился WASM 3.0, активно развивается Component Model, появился WASI 0.3 с нативной async-моделью. Исключения, GC, SIMD и многие proposals уже перестали быть экзотикой и получили поддержку в современных рантаймах.
Но некоторые выводы статьи по-прежнему актуальны.
Если вы переносите большой C/C++-проект в WASM, архитектурные компромиссы никуда не делись. Стоимость копирования данных между host и sandbox, особенности ABI, выбор runtime и вопросы производительности по-прежнему оказывают куда большее влияние, чем сама спецификация.
Отдельно интересно, что автор называл wasm64 слишком экспериментальным. В 2026 ситуация заметно лучше: memory64 уже вошла в экосистему, однако полноценная поддержка во всех движках и браузерах все еще на подходе.
Статья отлично показывает, как выглядело состояние WASM в 2024 году. И именно поэтому ее полезно читать сегодня. Можно оценить, какие прогнозы оказались верными, какие проблемы уже решены, а какие до сих пор сопровождают любой серьезный проект.
Приятного чтения!
#wasm #webassembly
@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
WebAssembly (WASM) — не серебряная пуля
WebAssembly появился для браузерных задач как способ исполнять тяжелый код быстрее, чем это делает JavaScript. Но за последние годы он начал выходить далеко (иногда буквально...
❤4
#wasm_news
📰 Несколько дней назад был представлен wazy - новый рантайм для Go, который выглядит очень амбициозно.
Главная идея проекта - чистый Go Runtime без CGO и производительность на уровне Wasmtime. Звучит смело, однако автор подкрепляет заявления подробными бенчмарками и открыто сравнивает wazy с wazero (в сравнениях выигрывает первый, ествественно).
И ставка сделана не только на скорость 😊
wazy уже поддерживает Component Model и даже WASI 0.3 Async ABI, тогда как большинство Go-рантаймов пока ограничиваются классическими WASM-модулями. Это означает, что гоферы уже сегодня могут экспериментировать с современным стеком WASM ❤️🔥
Конечно, к заявлениям о производительности всегда стоит относиться осторожно, независимых сравнений пока нет. Но сам факт появления еще одного рантайма с фокусом на Component Model - хорошая новость для всей экосистемы (наконец то начинаем догонять Rust Toolchain по возможностям)
#wasm #webassembly #wazero #wazy #golang
@prowasm
📰 Несколько дней назад был представлен wazy - новый рантайм для Go, который выглядит очень амбициозно.
Главная идея проекта - чистый Go Runtime без CGO и производительность на уровне Wasmtime. Звучит смело, однако автор подкрепляет заявления подробными бенчмарками и открыто сравнивает wazy с wazero (в сравнениях выигрывает первый, ествественно).
И ставка сделана не только на скорость 😊
wazy уже поддерживает Component Model и даже WASI 0.3 Async ABI, тогда как большинство Go-рантаймов пока ограничиваются классическими WASM-модулями. Это означает, что гоферы уже сегодня могут экспериментировать с современным стеком WASM ❤️🔥
Конечно, к заявлениям о производительности всегда стоит относиться осторожно, независимых сравнений пока нет. Но сам факт появления еще одного рантайма с фокусом на Component Model - хорошая новость для всей экосистемы (наконец то начинаем догонять Rust Toolchain по возможностям)
#wasm #webassembly #wazero #wazy #golang
@prowasm
GitHub
GitHub - samyfodil/wazy: Fastest WebAssembly runtime for Go. Supports Component Model & Async. Zero dependencies, no CGO, pure…
Fastest WebAssembly runtime for Go. Supports Component Model & Async. Zero dependencies, no CGO, pure Go. - samyfodil/wazy
❤4
Рубрика #wasm_live
Здесь собираем интересные кейсы использования WebAssembly: от Big Tech до небольших, но очень изобретательных проектов.
🤖 LLM прямо в браузере. Без GPU. Без WebGPU. Без сервера. Только WebAssembly.
Разработчик запустил модель LiquidAI LFM 2.5-350M полностью в браузере, используя чистый WASM. Никакого бэкенда и сетевых запросов во время инференса, после загрузки модели все работает локально на CPU.
Что особенно интересно с технической точки зрения?
Во-первых, автор не использует готовые библиотеки линейной алгебры. Практически вся математика написана вручную: SIMD-ядра для GEMM/GEMV, GQA Attention, RoPE и других операций. Это очень хороший пример использования WASM SIMD.
Во-вторых, модель квантована до 4 бит (Q4_0), благодаря чему удалось уместить веса примерно в 285 МБ. После первой загрузки инференс полностью выполняется локально, что одновременно запускает приватность в космос и устраняет зависимость от сервера.
Конечно, это не конкурент большим облачным моделям. Но тем не менее, шикарная демонстрация возможностей WASM.👍
Исходный код открыт на GitHub.
Проект в первую очередь интересен тем, кто занимается локальным AI, Edge AI и браузерными ML.
#wasm #webassembly
@prowasm
Здесь собираем интересные кейсы использования WebAssembly: от Big Tech до небольших, но очень изобретательных проектов.
🤖 LLM прямо в браузере. Без GPU. Без WebGPU. Без сервера. Только WebAssembly.
Разработчик запустил модель LiquidAI LFM 2.5-350M полностью в браузере, используя чистый WASM. Никакого бэкенда и сетевых запросов во время инференса, после загрузки модели все работает локально на CPU.
Что особенно интересно с технической точки зрения?
Во-первых, автор не использует готовые библиотеки линейной алгебры. Практически вся математика написана вручную: SIMD-ядра для GEMM/GEMV, GQA Attention, RoPE и других операций. Это очень хороший пример использования WASM SIMD.
Во-вторых, модель квантована до 4 бит (Q4_0), благодаря чему удалось уместить веса примерно в 285 МБ. После первой загрузки инференс полностью выполняется локально, что одновременно запускает приватность в космос и устраняет зависимость от сервера.
Конечно, это не конкурент большим облачным моделям. Но тем не менее, шикарная демонстрация возможностей WASM.
Исходный код открыт на GitHub.
Проект в первую очередь интересен тем, кто занимается локальным AI, Edge AI и браузерными ML.
#wasm #webassembly
@prowasm
Please open Telegram to view this post
VIEW IN TELEGRAM
huggingface.co
celsowm/lfm2.5-350m-wasm-q4_0 · Hugging Face
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
❤4
#wasm_lab
Why Do We Need the Relooper Algorithm, Again?
На первый взгляд кажется, что отсутствие
Но есть проблема, и она совсем не связана со стилем.
Практически любой современный компилятор (LLVM, GCC и другие) внутри работает не со структурированными
Но когда компилятор собирает WASM, ему приходится превратить произвольный CFG в ограниченный набор конструкций WASM. Если граф оказывается слишком сложным, в дело вступает Relooper.
По сути, Relooper пытается "натянуть" сложный граф на
Получается довольно странная цепочка:
CFG - WASM - снова CFG - машинный код.
Автор статьи называет это "lossy conversion". Мы теряем информацию о структуре управления, а затем тратим ресурсы, чтобы её восстановить.
Именно поэтому Relooper долгое время считался одной из самых болезненных частей компиляции в WASM. Не из-за производительности самого алгоритма, а потому что он компенсирует ограничения формата.
💬 Интересно, что предложения, которые автор называл необходимыми (multiple returns, block arguments и другие), позже действительно появились в экосистеме. Proposal Multi-Value принят и поддерживается всеми основными движками.
Однако идея произвольного CFG в самом формате так и не была принята, поэтому алгоритм Relooper остается актуальным и сегодня.
#wasm #webassembly
@prowasm
Why Do We Need the Relooper Algorithm, Again?
На первый взгляд кажется, что отсутствие
goto в WASM это просто эталон хорошего стиля программирования. Вместо него есть block, loop, if, br и другие структурированные конструкции.Но есть проблема, и она совсем не связана со стилем.
Практически любой современный компилятор (LLVM, GCC и другие) внутри работает не со структурированными
if и while, а с Control Flow Graph (CFG) - графом потока управления. Именно в таком виде удобнее всего оптимизировать код.Но когда компилятор собирает WASM, ему приходится превратить произвольный CFG в ограниченный набор конструкций WASM. Если граф оказывается слишком сложным, в дело вступает Relooper.
По сути, Relooper пытается "натянуть" сложный граф на
loop + block + if. Иногда это получается красиво. Иногда приходится генерировать конструкции, напоминающие цикл со switch, которые затем уже движок снова пытается восстановить обратно в CFG.Получается довольно странная цепочка:
CFG - WASM - снова CFG - машинный код.
Автор статьи называет это "lossy conversion". Мы теряем информацию о структуре управления, а затем тратим ресурсы, чтобы её восстановить.
Именно поэтому Relooper долгое время считался одной из самых болезненных частей компиляции в WASM. Не из-за производительности самого алгоритма, а потому что он компенсирует ограничения формата.
💬 Интересно, что предложения, которые автор называл необходимыми (multiple returns, block arguments и другие), позже действительно появились в экосистеме. Proposal Multi-Value принят и поддерживается всеми основными движками.
Однако идея произвольного CFG в самом формате так и не была принята, поэтому алгоритм Relooper остается актуальным и сегодня.
#wasm #webassembly
@prowasm
troubles.md
WebAssembly Troubles part 2: Why Do We Need the Relooper Algorithm, Again?
🔥1
#wasm_news
📰 Группой инженеров в открытом письме представлен WASP - новый фреймворк для stateful serverless-приложений.
На мой взгляд, работа команды бьет точно в больную точку современного WASM-serverless.
В чём проблема? WASM уверенно чувствует себя как легковесная альтернатива контейнерам для Function-as-a-Service. Но существующие платформы намертво привязаны к конкретному движку и заточены в основном под stateless-нагрузки (например, wasmCloud). А edge - это зоопарк железа и сценариев, где stateful-приложения тоже нужны.
Что предлагает WASP? Отказ от монолита в пользу строго независимых, подключаемых компонентов. Можно менять рантайм и datastore под доступные ресурсы и требования приложения без изменения кода самого приложения. Сверху навесили конфигурируемые политики жизненного цикла и кэширования.
И самое интересное - цифры. WASP вносит пренебрежимо малый оверхед, а за счёт замены рантаймов выдаtт радикально разные профили по памяти и latency. То есть реально подстраивается под разные ограничения edge-cloud платформ.
Посмотрим, дойдёт ли WASP до продакшена. Но сама идея pluggable-архитектуры без vendor lock выглядит невероятно.
Всю спецификацию можно изучить здесь.
#wasm #webassembly #wasp
@prowasm
📰 Группой инженеров в открытом письме представлен WASP - новый фреймворк для stateful serverless-приложений.
На мой взгляд, работа команды бьет точно в больную точку современного WASM-serverless.
В чём проблема? WASM уверенно чувствует себя как легковесная альтернатива контейнерам для Function-as-a-Service. Но существующие платформы намертво привязаны к конкретному движку и заточены в основном под stateless-нагрузки (например, wasmCloud). А edge - это зоопарк железа и сценариев, где stateful-приложения тоже нужны.
Что предлагает WASP? Отказ от монолита в пользу строго независимых, подключаемых компонентов. Можно менять рантайм и datastore под доступные ресурсы и требования приложения без изменения кода самого приложения. Сверху навесили конфигурируемые политики жизненного цикла и кэширования.
И самое интересное - цифры. WASP вносит пренебрежимо малый оверхед, а за счёт замены рантаймов выдаtт радикально разные профили по памяти и latency. То есть реально подстраивается под разные ограничения edge-cloud платформ.
Посмотрим, дойдёт ли WASP до продакшена. Но сама идея pluggable-архитектуры без vendor lock выглядит невероятно.
Всю спецификацию можно изучить здесь.
#wasm #webassembly #wasp
@prowasm
arXiv.org
WASP: A Configurable Framework for Portable Stateful Serverless...
WebAssembly (WASM) is emerging as a lightweight alternative to containers for Function-as-a-Service (FaaS) across the edge-cloud continuum. However, existing WASM-based serverless platforms are...
🔥2👍1