Logo de Dallonses

WebAssembly (WASM)

¿Qué es WebAssembly?

WebAssembly es un formato de instrucciones binarias que corre en el navegador a una velocidad cercana a la nativa. El código escrito en C, C++, Rust o Go se compila a un módulo WASM compacto, y el navegador lo ejecuta dentro del mismo sandbox que corre JavaScript. Los dos trabajan codo con codo. JavaScript maneja el DOM y el pegamento, WASM maneja el cálculo pesado.

La razón de que exista es la velocidad. JavaScript es lo bastante rápido para la mayor parte del trabajo de interfaz, pero se atasca con cualquier cosa limitada por CPU: codificación de vídeo, renderizado 3D, física, criptografía, parseo de datos a gran escala. WASM entrega bytecode precompilado que el motor puede validar y ejecutar sin el ciclo de parsear y optimizar por el que pasa JavaScript. El editor de diseño de Figma trasladó su núcleo de renderizado a WebAssembly hace años, lo que es parte de por qué una pestaña del navegador puede mover píxeles como una app de escritorio.

WASM no es un reemplazo de JavaScript y no toca el DOM por sí solo. Corre en un sandbox seguro en memoria, habla con la página a través de un puente de JavaScript y brilla cuando hay verdadero cálculo numérico que hacer. Para un sitio de marketing estándar, añade una complejidad que no necesitas. Para una herramienta CAD, un juego o una estación de audio en el navegador, cambia lo que es posible.

WebAssembly en Dallonses

Recurrimos a WebAssembly cuando el navegador choca con un muro. Un cliente nos llegó con un configurador que necesitaba renderizar y recalcular miles de actualizaciones de geometría en tiempo real, y JavaScript a secas no podía mantener estable la tasa de fotogramas. Movimos los cálculos a un módulo de Rust compilado a WASM y dejamos la UI en el stack existente. La interacción pasó de entrecortada a fluida, sobre el mismo hardware.

La mayor parte de nuestro trabajo de desarrollo web nunca lo necesita, y lo decimos. WASM se gana su sitio cuando hay cálculo real de por medio, no porque suene moderno. Cuando encaja, lo tratamos como una herramienta dentro de una aplicación web a medida más grande, cableada con cuidado a la capa de JavaScript y medida contra presupuestos de rendimiento reales y no contra benchmarks que quedan bien en una diapositiva.

¿Metes en el navegador trabajo que JavaScript no puede cargar? Vamos a mirarlo juntos.

Hablemos de WASM

Servicios relacionados


¿Listo para trabajar juntos?

Reservar una reunión
Aymón sosteniendo una revista Tools frente a su cara
Ari trabajando en una laptop al aire libre rodeado de plantas
Vista superior de un escritorio de madera con teclado, ratón y auriculares
Ilustración dibujada a mano de una mano chasqueando los dedos
Nico recostado contra un dispensador de agua junto a un extintor de incendios
Primer plano de una computadora abierta con placa de circuito y componentes en un escritorio de madera
Bernat y Andreu colaborando en un escritorio con monitores y una laptop
Ilustración dibujada a mano de una mano abierta saludando
Aymón sosteniendo una revista Tools frente a su cara
Ari trabajando en una laptop al aire libre rodeado de plantas
Vista superior de un escritorio de madera con teclado, ratón y auriculares
Ilustración dibujada a mano de una mano chasqueando los dedos
Nico recostado contra un dispensador de agua junto a un extintor de incendios
Primer plano de una computadora abierta con placa de circuito y componentes en un escritorio de madera
Bernat y Andreu colaborando en un escritorio con monitores y una laptop
Ilustración dibujada a mano de una mano abierta saludando