Meta (antes conocido como Facebook) dio a conocer mediante una publicación de blog la noticia de que ha tomado la decisión de liberar el código de Dotslash, una herramienta de línea de comandos diseñada para simplificar la distribución de un conjunto de ejecutables entre diferentes plataformas. La utilidad es desarrollada en Rust y Meta ha liberado el código bajo las licencias MIT y Apache 2.0.
La esencia de DotSlash, es la gestión y la automatización de la creación de grandes archivos ejecutables, eliminando la necesidad de incluir todos los archivos de plataforma compatibles en un paquete.
Hemos abierto DotSlash , una herramienta que hace que grandes ejecutables estén disponibles en el control de código fuente con un impacto insignificante en el tamaño del repositorio, evitando así operaciones de clonación con muchas operaciones de E/S.
¿Qué es DotSlash?
DotSlash es una herramienta que permite incluir ejecutables grandes en el control de código fuente con un impacto mínimo en el tamaño del repositorio. La idea principal detrás de DotSlash es reemplazar un conjunto de ejecutables específicos de la plataforma con un único script que contiene descriptores para las plataformas compatibles. Como tal, DotSlash está pensado para ejecutar scripts que automatizan la descarga de archivos ejecutables apropiados para la plataforma actual, verificando su integridad y ejecutándolos.
Esta herramienta aborda desafíos similares a los scripts de shell para ejecutar archivos ejecutables en la plataforma actual, pero elimina la necesidad de incluir ejecutables para todas las plataformas en el paquete. La herramienta permite almacenar información sobre los archivos ejecutables compilados en un repositorio junto con el código, mientras que los archivos se alojan en servidores de inicio separados, evitando el crecimiento del repositorio y reduciendo la carga en el sistema de entrada/salida durante operaciones de clonación.
Con DotSlash, un conjunto de ejecutables específicos de la plataforma se reemplaza por un único script que contiene descriptores para las plataformas compatibles. DotSlash se encarga de buscar, descomprimir y verificar de forma transparente el artefacto remoto apropiado para el sistema operativo y la CPU actuales.
Entre las ventajas de DotSlash se destaca la eficiencia en el manejo de ejecutables, ya que simplifica la gestión de estos, evitando al desarrollador la necesidad de clonar grandes cantidades de archivos en operaciones de E/S, también evita la instalación masiva de ejecutables en ubicaciones predeterminadas, lo que puede consumir grandes cantidades de espacio en disco y ralentizar las operaciones de gestión de software. Además de ello, debido a la naturaleza del proyecto, DotSlash es multiplataforma y puede ejecutarse en una amplia gama de entornos de desarrollo, lo que lo hace altamente adaptable a diferentes sistemas operativos y arquitecturas de CPU.
¿Cómo funciona DotSlash?
DotSlash realiza varias funciones clave para garantizar la ejecución transparente de los ejecutables en diferentes sistemas operativos y arquitecturas de CPU:
- Búsqueda y selección: DotSlash busca, descomprime y verifica de manera transparente el artefacto remoto apropiado para el sistema operativo y la CPU actuales.
- Gestión de versiones: Permite llevar de manera confiable la versión apropiada de cada herramienta al lugar correcto, lo que puede ser una tarea desafiante en entornos de desarrollo complejos.
- Automatización: La mayoría de los archivos DotSlash se generan y comprometen al control de fuente a través de la automatización, lo que garantiza una gestión eficiente y sin errores de los ejecutables.
Con DotSlash, el conjunto de archivos ejecutables específicos de la plataforma se reemplaza por un solo script que describe la lógica para seleccionar el archivo ejecutable en función de las plataformas compatibles. Al ejecutar un script DotSlash, el archivo ejecutable necesario para la plataforma actual se descarga dinámicamente, se descomprime, se verifica con un hash y se almacena en un caché local para ejecuciones posteriores. Los archivos se transfieren en formato comprimido y además, los scripts DotSlash se pueden generar automáticamente para las versiones publicadas en GitHub.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.