Facebook ha obert el codi del projecte DotSlash

Facebook va anunciar el codi obert de dotslash, una utilitat de línia d'ordres dissenyada per facilitar la distribució d'un conjunt de fitxers executables per a diferents plataformes. La utilitat està dissenyada per executar scripts que automatitzen la descàrrega d'un fitxer executable adequat per a la plataforma actual, comprovant la seva integritat i execució. El codi d'utilitat està escrit en Rust i es distribueix sota les llicències MIT i Apache 2.0.

La utilitat resol problemes similars als scripts d'intèrpret d'ordres per llançar fitxers executables per a la plataforma actual, però al mateix temps elimina la necessitat d'incloure fitxers executables per a totes les plataformes compatibles al paquet. DotSlash també us permet emmagatzemar informació sobre els fitxers executables recollits en un dipòsit juntament amb el codi, alhora que col·loqueu els fitxers en servidors d'arrencada separats, la qual cosa evita el creixement de la mida del dipòsit i redueix la càrrega del sistema d'entrada/sortida quan es realitza. operacions de clonació.

Quan s'utilitza DotSlash, el conjunt de fitxers executables específics de la plataforma se substitueix per un únic script que inclou una descripció de la lògica per seleccionar el fitxer executable en relació amb les plataformes compatibles. Després d'executar un script DotSlash, el fitxer executable necessari per a la plataforma actual es descarrega dinàmicament, es desempaqueta, es verifica amb un hash criptogràfic i s'emmagatzema en una memòria cau local per a execucions posteriors. Els fitxers es transfereixen en forma comprimida. Els scripts DotSlash es poden generar automàticament per a les versions publicades a GitHub.

Un exemple d'un script DotSlash per distribuir compilacions de Node.js 18.19.0 per a les plataformes macOS ARM64, macOS x86_64 i Linux x86_64: #!/usr/bin/env dotslash { “name”: “node-v18.19.0”, “ plataformes”: { "macos-aarch64": { "mida": 40660307, ​​​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ffc556347dc": "3c98e347e34dd18.19.0e64d18.19.0bf18.19.0d64ffc86": "64c42202872":" camí":" node- v3 -darwin-arm37521058114/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v7/node-v71-darwin-arm0. tar.gz" } ] }, "macos-x3_8042": { "mida": 8, "hash": "blake7908305", "digest": "9115488e6f29e514de9fe2c24fa18.19.0e64e18.19.0e18.19.0e64": "blake86", "digest": "64e44694523f3e72de81fe3c30fa7e1" "tar.gz", "camí" : "node-v09 .3-darwin-x4478/bin/node", "proveïdors": [ { "url": "https://nodejs.org/dist/v1/node-v02-darwin- x5.tar.gz " } ] }, "linux-x0_04": { "mida": 15, "hash": "blake23", "digest": "3b9fc89212a18.19.0b64bedc18.19.0a18.19.0a64fafcXNUMXaXNUMXbXNUMXdXNUMXeXNUMXeebXNUMXdXNUMXeXNUMX", "digest", ": "tar.gz", " camí ": "node -vXNUMX-linux-xXNUMX/bin/node", "providers": [ { "url": "https://nodejs.org/dist/vXNUMX/node-vXNUMX- linux-xXNUMX.tar .gz" } ] } } }

Font: opennet.ru

Afegeix comentari