

Раз в некоторое время на крупной конференции появляется особенно интересный релиз или проект с минимальной или без маркетинговой поддержки, либо командой, напоминающей крупные корпорации. На KubeCon + CloudNativeCon Элизабет Гилберт, кандидат наук Карнеги‑Меллонского университета, описала проект под названием Whamm, который действительно может работать буквально «из коробки» одной строкой кода. Он не заменяет, не смягчает и не улучшает существующие инструменты и процессы, но может выполнять вещи, которых ранее не существовало должным образом. Гилберт отлично объяснила созданный ею проект, и после её выступления с докладом «Whamm: Framework for Performant, Sandboxed Instrumentation» на WasmCon, организованном CNCF, он получил значительное число загрузок и форков. Whamm создан так, чтобы позволять пользователям инструментировать свои приложения на WebAssembly (Wasm) с помощью языка программирования или кода, либо писать свои Wasm‑приложения непосредственно модулями. С его помощью они могут отлаживать, мониторить и т. п. свои приложения внутри модулей WebAssembly. Whamm возглавлял кандидат наук Карнеги‑Меллонского университета Элизабет Гилберт во время её доклада на WasmCon перед KubeCon NA. Эта система инструментирования для WebAssembly должна привлечь интерес и поддержку наблюдаемости Wasm. @linuxfoundation pic.twitter.com/MZBFkfjsFu — BC Gain (@bcamerongain), 11 ноября 2025 г. Изначально представленная в статье под названием «Flexible Non-intrusive Dynamic Instrumentation for WebAssembly», Whamm описывается как рамочная структура для «мониторинга и манипулирования» WebAssembly‑приложениями. На странице Гилберт на GitHub она описывает возможности Whamm по инструментированию, мониторингу и переписыванию байткода так: Инструментирование: когда мы говорим, что «инструментируем программу», в общих чертах мы имеем в виду, что «внедряем некоторый код в выполнение программы, чтобы выполнить операцию». Это определение намеренно общее, поскольку инструментирование действительно может делать всё, что мы можем себе представить! С помощью инструментирования можно строить отладчики, динамический анализ, генераторы телеметрии и многое другое. Динамический анализ: динамический анализ — это анализ того, как программа выполняется во время её выполнения (в отличие от статического анализа, который анализирует программу, когда она не выполняется). Такой анализ может дать полезные сведения о программе, поскольку он может получать доступ к информации, недоступной статически (такие как «горячие» места кода, обращения к памяти во времени, охват кода тестами и т. д.). Перезапись байткода: это пример стратегии внедрения логики инструментирования в приложение. Она буквально вставляет новые инструкции в байткод приложения. Инструментирование на самом деле — это способ наблюдать за поведением вашего приложения, что является достаточно гибким определением, чтобы охватить все различные подходы. Это может быть наблюдаемость, но также может использоваться для тестирования сценариев, таких как тестирование на инъекцию сбоев, — сказала Гилберт после её доклада на KubeCon + CNCF WasmCon. «Вы можете внедрять сбои в ваше приложение, чтобы увидеть, сможет ли оно корректно с ними справляться. Инструментирование можно использовать не только для наблюдения за выполнением, но и для манипулирования им.» Как объясняла Гилберт, основная мотивация сосредоточиться на WebAssembly состоит в языковой интероперабельности. «Поскольку несколько разных языков могут компилироваться в WebAssembly, именно это нужно, чтобы инструменты действительно стали крутыми. Если у вас есть языковозависимый инструментарий, то если появится новый язык программирования и он просто компилируется в WebAssembly, вы сможете получить все инструменты бесплатно», сказала Гилберт. «Возможность полиглотности может быть действительно крутой для многих людей. По мере того как Wasm становится все более широко нацеленным, если у нас будет история инструментирования там, тогда все инструменты разработки можно будет получить бесплатно, и платформа сможет подключать всевозможные вещи.» Текущее состояние проекта таково: он «выполняет довольно много функций, но нужно проработать больше сценариев использования, чтобы сделать его более устойчивым», сказала Гилберт. «Проект на данный момент работал в изоляции. Больше людей, особенно инженеров, которые могли бы внести вклад, было бы крайне полезно, потому что тогда работа шла бы быстрее.» Действительно, я уже ожидаю увидеть множество инженеров, желающих внести вклад в Whamm и получить от него пользу.