Weblings es un proyecto que empaqueta toda la cadena de herramientas del compilador de Rust como módulos WebAssembly, de forma que el código fuente puede compilarse y ejecutarse directamente desde el navegador, sin necesidad de un servidor backend. El flujo técnico sigue la ruta rustc → representación intermedia de Cranelift (CLIF) → waffle → ficheros objeto WASM → enlazador → ejecutable WASM, que finalmente corre en el propio navegador.
El proyecto ofrece una interfaz web dividida en dos secciones. La primera es un Playground equivalente al Rust Playground oficial, pero con compilación y ejecución locales en el cliente. La segunda es una versión en navegador del conjunto de ejercicios Rustlings, pensado para practicar Rust sin instalar nada.
Para hacer viable la cadena, el autor se apoyó en el trabajo previo de Björn Ruytenberg, que mantiene ramas de rustc adaptadas para ejecutarse dentro de WASM. Además, programó una capa de traducción de Cranelift IR al IR de waffle —inspirada en una discusión en el repositorio de wasmtime— y un enlazador WASM propio que enlaza los objetos compilados con los rlibs de la sysroot estándar. Esos dos últimos componentes se redactaron con asistencia de herramientas de IA y el autor manifiesta su intención de proposerlos como contribuciones upstream a Cranelift y a Wild.
Weblings se enmarca en una línea más amplia: ejecutar Rust íntegramente en WASM. Existen alternativas como rubrc, que usa rustc sobre WASM con LLVM también compilado a WebAssembly, y rubri, basada en Miri como intérprete. La motivación principal del autor es pedagógica: desarrollar herramientas para enseñar principios de memoria, similar a su proyecto previo C-Ray, y ofrecer entornos con retroalimentación inmediata para quien esté aprendiendo Rust.
