Una muestra de herramientas que ahora están disponibles en la Web gracias a WebAssembly.
WebAssembly permite a los desarrolladores incorporar nuevas funciones de alto rendimiento a la Web desde otros lenguajes. En los últimos años, los desarrolladores realmente aprovecharon las posibilidades. En esta publicación, se muestran solo algunas de las nuevas herramientas brillantes de las que puedes beneficiarte, en parte gracias a WebAssembly.
Herramientas y bibliotecas que puedes usar ahora
Sin más que agregar, comencemos con lo bueno :D
SQLite
Este puerto completo de SQLite te brinda un sistema de administración de bases de datos relacionales ligero y incorporado. Para obtener más información, lee esta entrada de blog en la que se muestra este increíble puerto y cómo usarlo.
FFmpeg.wasm
FFmpeg es un proyecto de software gratuito y de código abierto que consta de un paquete de bibliotecas y programas para controlar transmisiones y archivos multimedia, de audio y video. Puedes encontrar una versión compilada de wasm aquí (repositorio de GitHub) que te permite realizar todas estas funciones directamente en el navegador.
Descripción universal de escenas (USD)
La descripción de escenas universales (USD) es un framework para datos de gráficos por computadora en 3D que se enfoca en la colaboración, la edición no destructiva y la habilitación de múltiples vistas y opiniones sobre los datos de gráficos. Es un estándar de la industria compatible con empresas como Pixar, Autodesk, Nvidia y muchas más. Aún es un servicio nuevo, pero Autodesk ya lanzó un visor de USD basado en código abierto que puedes ver aquí.
CanvasKit
CanvasKit es Skia, el motor de renderización de Chrome y Android, compilado directamente en WebAssembly. Con ella, obtienes acceso simple a la API de JavaScript a prácticamente toda la potencia del motor de renderización de Skia. La funcionalidad incluye renderización compleja, formas de texto, animación, entintado y mucho más. Consulta el paquete de npm y la guía de inicio rápido.
TensorFlow.js
TensorFlow.js lleva la potencia de TensorFlow directamente al navegador con una API de JavaScript simple. En el fondo, optimiza los modelos en la GPU y la CPU (incluidas las optimizaciones de SIMD) para maximizar el rendimiento. Puedes ver la guía de introducción o algunas de sus demostraciones directamente.
OpenCV
OpenCV es un estándar de la industria de funciones de programación, principalmente para la visión por computadora en tiempo real. Aquí hay un paquete npm fácil de usar y, para los usuarios de Emscripten, también hay instrucciones detalladas para realizar una compilación completa. Para ver cómo SIMD y los subprocesos mejoran el rendimiento de estas cargas de trabajo, puedes mirar esta sección de la charla de Modern WebAssembly en Chrome Dev Summit.
Cocos
Cocos es un motor de juego potente y popular que permite a los desarrolladores compilar juegos con compatibilidad multiplataforma, lo que ahora incluye la Web. Se une a la larga lista de motores de juegos que permiten la exportación web a través de wasm. Para comenzar, ve al editor de Cocos y sigue estas instrucciones.
Conclusión
Además de estos ejemplos específicos, hay mucho que entusiasmar en términos del potencial de WebAssembly para cambiar el ritmo de las nuevas funciones web. Chrome incluso creó el Fondo de Aplicaciones Web Avanzadas, que puede ayudar a los desarrolladores a financiar su trabajo para mejorar la funcionalidad web disponible para todos los desarrolladores.
Imagen hero de Pexels, por Ann Marie Kennon.