Facebook je otvorio kod za projekat DotSlash

Facebook je najavio otvoreni izvor dotslash, uslužni program komandne linije dizajniran da olakša distribuciju skupa izvršnih datoteka za različite platforme. Uslužni program je dizajniran za pokretanje skripti koje automatiziraju preuzimanje izvršne datoteke prikladne za trenutnu platformu, provjeravajući njen integritet i izvršenje. Uslužni kod je napisan u Rustu i distribuira se pod licencama MIT i Apache 2.0.

Uslužni program rješava probleme slične shell skriptama za pokretanje izvršnih datoteka za trenutnu platformu, ali u isto vrijeme eliminira potrebu uključivanja izvršnih datoteka za sve podržane platforme u paketu. DotSlash vam također omogućava pohranjivanje informacija o prikupljenim izvršnim datotekama u spremištu zajedno sa kodom, dok same datoteke postavljate na odvojene servere za pokretanje, čime se izbjegava rast veličine spremišta i smanjuje opterećenje na ulazno/izlazni sistem prilikom izvođenja operacije kloniranja.

Kada se koristi DotSlash, skup izvršnih datoteka specifičnih za platformu zamjenjuje se jednom skriptom koja uključuje opis logike za odabir izvršne datoteke u odnosu na podržane platforme. Nakon pokretanja DotSlash skripte, izvršna datoteka potrebna za trenutnu platformu se dinamički preuzima, raspakuje, provjerava u odnosu na kriptografski hash i pohranjuje u lokalnu keš memoriju za naredna pokretanja. Fajlovi se prenose u komprimovanom obliku. DotSlash skripte se mogu generirati automatski za izdanja objavljena na GitHubu.

Primjer DotSlash skripte za distribuciju Node.js 18.19.0 verzija za macOS ARM64, macOS x86_64 i Linux x86_64 platforme: #!/usr/bin/env dotslash { “name”: “node-v18.19.0”, “ platforms”: { "macos-aarch64": { "size": 40660307, ​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347z", thp3 ", tar. ": " node- v98 -darwin-arm347/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v34/node-v18.19.0-darwin-arm64. tar.gz" } ] }, "macos-x18.19.0_18.19.0": { "veličina": 64, "hash": "blake86", "digest": "64e42202872f3e37521058114de7fe71c0fa3e8042cd8",7908305cd9115488cd6cd29cd514cd9cd2cd24cd18.19.0cf64c18.19.0c18.19.0f64c86f64c44694523, "tar.gz", "put" : "node-v3 .72-darwin-x81/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v3/node-v30-darwin- x7.tar.gz "}]}," LINUX-X1_09 ": {" Veličina ": 3," Hash "," "Digest": "4478b1a02a5fafc0a04b15e23ebf3ad9e89212d18.19.0b64e18.19.0dc18.19.0", "Format": "Tar.gz", " put ": "node -v64-linux-xXNUMX/bin/node", "providers": [ { "url": "https://nodejs.org/dist/vXNUMX/node-vXNUMX- linux-xXNUMX.tar .gz" } ] } } }

izvor: opennet.ru

Dodajte komentar