WebAssembly
¿Por qué Rust?
Rendimiento predecible
Sin pausas impredecibles del colector de basura. Sin caídas en el rendimiento del compilador JIT. Sólo control de bajo nivel combinado con ergonomía de alto nivel.
Código generado reducido
Reducir el código generado significa páginas que cargan más rápido. El .wasm
generado por Rust no incluye relleno, como un colector de basura. El código muerto se elimina mediante tree shaking y optimizaciones avanzadas.
Comodidades modernas
Un activo ecosistema de librerías para ayudarte a no empezar de cero. Abstracciones expresivas de coste cero. Y una comunidad que te ayuda a aprender.
¡Comienza!
Aprende más sobre WebAssembly, una máquina virtual rápida, segura y abierta, y lee su especificación.
Saber más¡Aprende cómo construir, depurar, optimizar y desplegar aplicaciones WebAssembly usando Rust!
Leer el libroAprende más sobre WebAssembly en Mozilla Developer Network
Echar un vistazoFunciona bien junto a JavaScript
Amplía, no reemplaza
El sueño de WebAssembly no es eliminar a JavaScript, sino funcionar conjuntamente, potenciando tareas de bajo nivel o de fuerte procesamiento — tareas que se benefician del enfoque de Rust en el rendimiento.
Funciona con las herramientas conocidas
Publica paquetes de WebAssembly hechos en Rust en registros como npm. Empaqueta y sírvelos con webpack, Parcel u otros. Mantenlos usando npm audit
o Greenkeeper.
Interoperación sin trabas
Genera código automáticamente que una APIs en Rust, WebAssembly y JavaScript. Aprovecha bibliotecas como web-sys
que te permiten acceder a toda la plataforma web.
Uso en producción
Podemos compilar Rust a WASM e invocarlo desde funciones serverless engarzadas en la estructura misma de Internet. Es tremendo, estoy deseando seguir por este camino.
– Steven Pack, Serverless Rust with Cloudflare Workers
La implementación [de la biblioteca de source-map
] en JavaScript había crecido en código complicado por razones de rendimiento, y la reemplazamos por Rust idiomático. Rust no te hace elegir entre expresar claramente tu propósito y el rendimiento en tiempo de ejecución.
– Nick Fitzgerald, Oxidizing Source Maps with Rust and WebAssembly
Estas propiedades de [Rust] facilitan embeber el codec de DivANS en una página web con WASM, como hemos visto.
– Daniel Reiter Horn y Jongmin Baek, Building Better Compression Together with DivANS