Facebook abriu o código do proxecto DotSlash

Facebook anunciou o código aberto de dotslash, unha utilidade de liña de comandos deseñada para facilitar a distribución dun conxunto de ficheiros executables para diferentes plataformas. A utilidade está deseñada para executar scripts que automatizan a descarga dun ficheiro executable axeitado para a plataforma actual, comprobando a súa integridade e execución. O código de utilidade está escrito en Rust e distribúese baixo as licenzas MIT e Apache 2.0.

A utilidade resolve problemas similares aos scripts de shell para lanzar ficheiros executables para a plataforma actual, pero ao mesmo tempo elimina a necesidade de incluír ficheiros executables para todas as plataformas compatibles no paquete. DotSlash tamén permite almacenar información sobre os ficheiros executables recollidos nun repositorio xunto co código, mentres coloca os propios ficheiros en servidores de arranque separados, o que evita o crecemento do tamaño do repositorio e reduce a carga no sistema de entrada/saída cando se realiza. operacións de clonación.

Cando se usa DotSlash, o conxunto de ficheiros executables específicos da plataforma substitúese por un único script que inclúe unha descrición da lóxica para seleccionar o ficheiro executable en relación coas plataformas admitidas. Despois de executar un script DotSlash, o ficheiro executable necesario para a plataforma actual descárgase de forma dinámica, descompárase, verifícase contra un hash criptográfico e gárdase nunha caché local para execucións posteriores. Os ficheiros transfírense en forma comprimida. Os scripts DotSlash pódense xerar automaticamente para as versións publicadas en GitHub.

Un exemplo de script DotSlash para distribuír compilacións de Node.js 18.19.0 para as plataformas macOS ARM64, macOS x86_64 e Linux x86_64: #!/usr/bin/env dotslash { “name”: “node-v18.19.0”, “ plataformas": { "macos-aarch64": { "tamaño": 40660307, ​​​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ffc556347d3bf98d347f34d18.19.0f64d18.19.0c18.19.0d64d86c64: ruta": " node- v42202872 -darwin-arm3/bin/node", "provedores": [ { "url": "https://nodejs.org/dist/v37521058114/node-v7-darwin-arm71. tar.gz" } ] }, "macos-x0_3": { "tamaño": 8042, "hash": "blake8", "resumo": "7908305e9115488f6e29de514fe9c2fa24e18.19.0c64fa18.19.0e18.19.0e64b86" "tar.gz", "camiño" : "node-v64 .44694523-darwin-x3/bin/node", "provedores": [ { "url": "https://nodejs.org/dist/v72/node-v81-darwin- x3.tar.gz " } ] }, "linux-x30_7": { "tamaño": 1, "hash": "blake09", "resumo": "3b4478fc1a02b5bedc0a04a15fafc23a3b9d89212e18.19.0eeeb64d18.19.0e18.19.0eeb64d": "blakeXNUMX", "digest" ": "tar.gz", " ruta ": "node -vXNUMX-linux-xXNUMX/bin/node", "providers": [ { "url": "https://nodejs.org/dist/vXNUMX/node-vXNUMX- linux-xXNUMX.tar .gz" } ] } } }

Fonte: opennet.ru

Engadir un comentario