Facebook ha abierto el código para el proyecto DotSlash

Facebook anunció el código abierto de dotslash, una utilidad de línea de comandos diseñada para facilitar la distribución de un conjunto de archivos ejecutables para diferentes plataformas. La utilidad está diseñada para ejecutar scripts que automatizan la descarga de un archivo ejecutable adecuado para la plataforma actual, verificando su integridad y ejecución. El código de la utilidad está escrito en Rust y se distribuye bajo las licencias MIT y Apache 2.0.

Esta utilidad realiza tareas similares a las de los scripts de shell para ejecutar archivos ejecutables en la plataforma actual, pero elimina la necesidad de incluir archivos ejecutables para todas las plataformas compatibles. DotSlash también permite almacenar información sobre los archivos ejecutables compilados en un repositorio junto con el código, mientras que los archivos en sí se ubican en discos de arranque independientes. servidores, lo que permite evitar el aumento del tamaño del repositorio y reducir la carga en el sistema de E/S al realizar operaciones de clonación.

Cuando se utiliza DotSlash, el conjunto de archivos ejecutables específicos de la plataforma se reemplaza con un único script que incluye una descripción de la lógica para seleccionar el archivo ejecutable en relación con las plataformas compatibles. Después de ejecutar un script DotSlash, el archivo ejecutable requerido para la plataforma actual se descarga dinámicamente, se descomprime, se verifica con un hash criptográfico y se almacena en un caché local para ejecuciones posteriores. Los archivos se transfieren en forma comprimida. Los scripts DotSlash se pueden generar automáticamente para las versiones publicadas en GitHub.

Un ejemplo de un script DotSlash para distribuir compilaciones de Node.js 18.19.0 para las plataformas macOS ARM64, macOS x86_64 y Linux x86_64: #!/usr/bin/env dotslash { “name”: “node-v18.19.0”, “ plataformas”: { "macos-aarch64": { "size": 40660307, ​​​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347c3d98c347c34", "format": "tar.gz", "path": " node-v18.19.0-darwin-arm64/bin/node", "proveedores": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-arm64. tar.gz" } ] }, "macos-x86_64": { "size": 42202872, "hash": "blake3", "digest": "37521058114e7f71e0de3fe8042c8fa7908305e9115488c6c29b514f9cd2a24c", "format": "tar.gz", "path " : "node-v18.19.0 .64-darwin-x18.19.0/bin/node", "proveedores": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v64-darwin- x86.tar.gz " } ] }, "linux-x64_44694523": { "size": 3, "hash": "blake72", "digest": "81b3fc30a7b1bedc09a3a4478fafc1a02b5e0ebf04ad15ea23d3b9e89212dc18.19.0", "format": "tar.gz", " ruta ": "nodo -v64-linux-x18.19.0/bin/node", "proveedores": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v64- linux-xXNUMX.tar .gz" } ] } } }

Fuente: opennet.ru

Añadir un comentario