Consulten la página de la API en la que estén interesados y vean si Deano admite la API. Deano en
Rust es, bueno, necesitamos entender un poco de historia aquí en que la primera iteración de Deano, el primer prototipo, no se escribió realmente en
Rust. En cambio, se escribió en Go. Sin embargo, debido a la naturaleza de Go, que es recolectado por basura al igual que
JavaScript, se decidió que deberíamos alejarnos de Go para evitar una situación en la que dos recolectores de basura compitan entre sí. Así que Deano se escribió en
Rust, que es un lenguaje de bajo nivel o lenguaje de sistemas que no tiene un recolector de basura. Y puedo decir que esta es probablemente la decisión más influyente que se haya tomado para el proyecto Deano.
Rust nos permite avanzar muy rápidamente y nos permite aprovechar un enorme ecosistema de crates disponibles. La mayoría de las crates son de muy alta calidad, por ejemplo, una crate http que implementa el protocolo http está muy bien probada y tiene una gran cobertura, por lo que tenemos mucha confianza en usarla y cumplir con el protocolo definido. Y por último, pero no menos importante, construir Deano es realmente muy sencillo. Dado que Deano está completamente integrado con Cargo, que es la herramienta de construcción o sistema de construcción de
Rust, es solo un comando para compilar todo el binario de Deano, incluido V8, pero no realmente. No te obligamos a compilar V8 tú mismo, en su lugar lo hacemos en nuestra canalización de
CI para que puedas usar archivos binarios precompilados, lo que te ahorra muchos problemas, ya que V8 es un proyecto enorme que lleva bastante tiempo compilar. Otra cosa es que Deano no es un monolito.
Rust te proporciona una forma sencilla de separar las piezas de tu código en lo que se llaman crates. Las crates son equivalentes a los paquetes
npm, por lo que son bibliotecas autocontenidas y reutilizables que puedes descargar y usar cuando quieras y Deano, el
CLI que puedes descargar, en realidad es una colección de estas crates que están entrelazadas y están diseñadas para funcionar muy bien juntas. Por lo tanto, una de las consecuencias es que en realidad, en Deano aquí en la empresa Deano, en realidad no enviamos solo un runtime. En realidad enviamos dos runtimes diferentes. Tenemos el
CLI de Deano, pero también tenemos Deano deploy, que es nuestra oferta en la nube. Estos runtimes son muy similares, sin embargo, no son idénticos. El
CLI de Deano está orientado al desarrollo local y a implementar tu código en tu propio servidor o Lambdas, mientras que Deano deploy está orientado a ser implementado en contenedores nativos en la nube y similares. Por lo tanto, como usuario, puedes elegir qué crates y APIs necesitas y luego puedes combinarlos para crear tu propio runtime que se adapte a tus necesidades. Volviendo a nuestro ejemplo de runtime run.js. ¿Qué puede hacer en este momento? Bueno, son solo 140 líneas de
Rust y 37 líneas de
JavaScript, por lo que no es mucho código, pero ya tiene soporte para módulos ES. Puede transpilar
JavaScript a
TypeScript sobre la marcha justo antes de la ejecución, similar a cómo lo hace
Deno. Tenemos una API para leer un archivo, una API para escribir un archivo y eliminar un archivo. Tenemos algunas APIs de consola rudimentarias, por lo que podemos hacer console.log y console.error, y tenemos una API básica de fetch, por lo que se parece a fetch, pero solo puede hacer solicitudes GET. Sin embargo, con solo 180 líneas de
Rust y
JavaScript, creo que esto es bastante fenomenal. Permítanme darles una demostración rápida del runtime run.js. Estoy en el repositorio que ya se les ha proporcionado y podemos ejecutar cargo run --example.ts. Por lo tanto, ejecutaremos un archivo
TypeScript aquí y obtendremos hello run.js y también el contenido de fetch. Entonces, si decidimos inspeccionar nuestro archivo example.ts, podemos ver que usa console.log, luego tenemos una interfaz. Entonces
Comments