En general, las ejecuciones de
Node.js runtimes se basarán en un runtime basado en C++. Pero, por supuesto, tenemos la solución alternativa de poder tener esencialmente una máquina virtual basada en
WebAssembly que puede ejecutar los programas basados en
Rust que tienen tareas altamente computacionales y que pueden ayudar a que las aplicaciones basadas en
Node.js sean altamente eficientes. Y veamos cómo funciona eso en realidad. Entonces, lo que estamos haciendo es que tenemos nuestra aplicación de
Node.js donde todas las tareas altamente intensivas no están escritas en
Node.js, sino que están escritas en
Rust. Así que con la ayuda de una función de
JavaScript, llamaremos a las funciones basadas en
WebAssembly que ayudan a agrupar la función de
Rust y compilarla en un bytecode que luego se sirve y se aloja en la máquina virtual de
WebAssembly, en este caso, Wasmx o SSVM. Y eso no solo ayuda a asegurar la aplicación, sino que también todas estas competiciones altamente intensivas que deben tener lugar ahora se realizan con la ayuda de
Rust. Y solo tienes que llamar a esta función con la ayuda de tu entorno de
Node.js. Y, por supuesto, puedes usarlas para muchas cosas diferentes, incluyendo inferencia de IA, porque puedes comunicarte directamente con el hardware nativo que es tu hardware de IA, o puedes usarlas para cosas como bases de datos de almacenamiento, ya que
WebAssembly está altamente optimizado para aplicaciones del lado del servidor. Entonces, ¿cómo empezar? Bueno, como discutimos, la aplicación de host es esencialmente una aplicación web basada en
Node.js escrita en
JavaScript y se utiliza para realizar llamadas a funciones basadas en
WebAssembly y el bytecode de
WebAssembly se escribe primero en
Rust, que luego se convierte en un bytecode de
WebAssembly y se ejecuta dentro del tiempo de ejecución de
WebAssembly y se llama con la ayuda de la aplicación de
Node.js. Y para configurar este entorno completo, necesitarías al menos una versión moderna de Ubuntu. También necesitarías cosas como el lenguaje
Rust,
Node.js, el tiempo de ejecución de
Wasm Edge y
Wasm Edge y otra cosa como la herramienta de compilación de
Rust a
WebAssembly que ayudará a compilar desde
Rust hasta el bytecode. Y ahora veamos un ejemplo de código. Entonces, para un código de inicio para comenzar con todo este ecosistema, puedes ir al siguiente enlace en el repositorio de GitHub de Second State que proporciona un inicio de
NodeJs. Aquí, he proporcionado un pequeño fragmento de código. Como puedes ver, en la parte superior, hemos incluido una función segura. Esto se genera a partir de
WebAssembly. Una vez que realmente construimos la función de
Rust. Se convierte en bytecode y también este código basado en
WebAssembly que puedes importar directamente. Y hemos hecho una simple llamada al servidor que básicamente agrega un parámetro de consulta al final de la llamada a la API y simplemente agrega un nombre. Y esto es lo que enviamos como una solicitud GET. Y esto aparece en la respuesta como hola con cualquier parámetro de consulta que hayamos dado con nuestro programa. Por supuesto, puedes usar esto para tareas mucho más intensivas computacionalmente. Por ejemplo, inferencia de
machine learning, donde puedes tener, como, una imagen y pasarla como un parámetro de consulta y tienes tu inferencia real de
machine learning que tiene lugar en
Rust y obtienes la respuesta. Así que espero que esto te dé una buena idea de lo que está sucediendo detrás de escena. Bueno, con eso, concluyo mi charla relámpago. Si tienes alguna otra pregunta, no dudes en conectarte conmigo en mi Twitter, y espero que tengas un maravilloso resto del Congreso de
Node.js. Muchas gracias.