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.

La utilidad resuelve problemas similares a los scripts de shell para ejecutar archivos ejecutables para la plataforma actual, pero al mismo tiempo elimina la necesidad de incluir archivos ejecutables para todas las plataformas compatibles en el paquete. DotSlash también le permite almacenar información sobre los archivos ejecutables recopilados en un repositorio junto con el código, mientras coloca los archivos en servidores de arranque separados, lo que evita el crecimiento del tamaño del repositorio y reduce la carga en el sistema de entrada/salida 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