

De vez en cuando, se presenta en una conferencia importante un lanzamiento o proyecto especialmente interesante, con poco o ningún respaldo de marketing, o por parte de equipos grandes, tipo corporativo. En KubeCon + CloudNativeCon, Elizabeth Gilbert, candidata a doctorado en la Universidad Carnegie Mellon, describió un proyecto llamado Whamm que realmente puede funcionar desde el primer momento con solo una línea de código. No reemplaza, mejora ni optimiza las herramientas y procesos existentes, pero puede hacer cosas que no habían existido realmente antes. Gilbert hizo un excelente trabajo al describir el proyecto que creó, y ha obtenido un número significativo de descargas y bifurcaciones tras la charla mencionada, 'Whamm: A Framework for Performant, Sandboxed Instrumentation' en WasmCon, el evento coorganizado por CNCF en KubeCon + CloudNativeCon. Whamm está diseñado para permitir a los usuarios instrumentar sus aplicaciones WebAssembly, o Wasm, con un lenguaje de programación o código, o para programar sus aplicaciones WebAssembly en módulos directamente. Con ello, pueden depurar, monitorear, etc., sus aplicaciones dentro de módulos WebAssembly. Whamm fue impulsado por la candidata a Ph.D. de Carnegie Mellon, Elizabeth Gilbert, durante su charla en WasmCon antes de KubeCon NA. Este marco de instrumentación para WebAssembly debería atraer interés y apoyo para la observabilidad de Wasm. @linuxfoundation pic.twitter.com/MZBFkfjsFu — BC Gain (@bcamerongain), 11 de noviembre de 2025 Originalmente presentado en un artículo titulado 'Flexible Non-intrusive Dynamic Instrumentation for WebAssembly', Whamm se describe como un marco para 'monitoreo y manipulación de aplicaciones Wasm'. En la página de GitHub de Gilbert, ella describe las capacidades de instrumentación, monitoreo y reescritura de bytecode de Whamm de la siguiente manera: Instrumentación: cuando decimos que estamos 'instrumentando un programa', a un nivel alto queremos decir que estamos 'inyectando algo de código en la ejecución de un programa para realizar una operación'. Esta definición es intencionalmente genérica, ya que la instrumentación puede realmente hacer cualquier cosa que podamos imaginar. ¡Puede usar la instrumentación para construir depuradores, análisis dinámicos, generadores de telemetría y más. Análisis dinámico: un análisis dinámico es aquello que analiza un programa mientras se está ejecutando (en contraste con un análisis estático que analiza un programa que no está en ejecución). Este tipo de análisis puede obtener ideas útiles sobre un programa al poder acceder a información que no está disponible estáticamente (tales como ubicaciones de código en caliente, accesos a memoria a lo largo del tiempo, cobertura de código de las pruebas, etc.). Reescritura de bytecode: esta es una estrategia de ejemplo para inyectar la lógica de instrumentación en la aplicación. Inyecta instrumentación insertando literalmente nuevas instrucciones en el bytecode de la aplicación. 'La instrumentación es realmente una forma de observar el comportamiento de su aplicación, lo cual es una definición lo suficientemente flexible como para abarcar todas las cosas diferentes. Puede ser observabilidad, pero también puede usarse para casos de prueba, como pruebas de inyección de fallos', dijo Gilbert a mí en KubeCon + CloudNativeCon después de su charla. 'Puede inyectar fallos en su aplicación para ver si puede manejar las cosas correctamente. La instrumentación puede usarse para manipular la ejecución de la aplicación mientras se está ejecutando.' Como explicó Gilbert, la motivación principal para centrarse en WebAssembly es la interoperabilidad de lenguajes. 'Dado que varios lenguajes diferentes pueden compilar a WebAssembly, esto es lo que se desea para que las herramientas sean realmente útiles. Si tienes herramientas que no dependen de un lenguaje, entonces si surge un nuevo lenguaje de programación y solo compila a WebAssembly, podrías obtener todas las herramientas de forma gratuita', dijo Gilbert. 'Esta posibilidad políglota podría ser realmente, realmente genial para muchas personas diferentes. A medida que Wasm se dirige a un público más amplio, si tenemos la historia de instrumentación allí, entonces todas las herramientas de desarrollo pueden obtenerse gratis y la plataforma puede conectarse a todo tipo de cosas diferentes.' El estado actual del proyecto es que 'puede hacer bastantes cosas, pero hay que definir más casos de uso para hacerlo más robusto', dijo Gilbert. 'El proyecto se ha estado trabajando hasta ahora de forma aislada. Más personas, especialmente ingenieros, contribuyendo sería 'killer' porque entonces el trabajo podría avanzar más rápido.' De hecho, ya espero ver a varios ingenieros que quieran contribuir a y beneficiarse de Whamm.