Facebook a deschis codul pentru proiectul DotSlash

Facebook a anunțat sursa deschisă de dotslash, un utilitar de linie de comandă conceput pentru a facilita distribuirea unui set de fișiere executabile pentru diferite platforme. Utilitarul este conceput pentru a rula scripturi care automatizează descărcarea unui fișier executabil potrivit platformei curente, verificându-i integritatea și execuția. Codul de utilitate este scris în Rust și este distribuit sub licențe MIT și Apache 2.0.

Utilitarul îndeplinește sarcini similare cu scripturile shell pentru lansarea fișierelor executabile pentru platforma curentă, dar elimină necesitatea de a include fișiere executabile pentru toate platformele acceptate. DotSlash vă permite, de asemenea, să stocați informații despre fișierele executabile compilate într-un depozit împreună cu codul, plasând în același timp fișierele pe discuri de boot separate. servere, ceea ce vă permite să evitați creșterea dimensiunii depozitului și să reduceți încărcarea sistemului I/O atunci când efectuați operațiuni de clonare.

La utilizarea DotSlash, setul de fișiere executabile specifice platformei este înlocuit cu un singur script care include o descriere a logicii de selectare a fișierului executabil în raport cu platformele acceptate. După rularea unui script DotSlash, fișierul executabil necesar pentru platforma curentă este descărcat dinamic, dezambalat, verificat cu un hash criptografic și stocat într-un cache local pentru rulările ulterioare. Fișierele sunt transferate sub formă comprimată. Scripturile DotSlash pot fi generate automat pentru versiunile publicate pe GitHub.

Un exemplu de script DotSlash pentru distribuirea versiunii Node.js 18.19.0 pentru platformele macOS ARM64, macOS x86_64 și Linux x86_64: #!/usr/bin/env dotslash { „nume”: „node-v18.19.0”, „ platforme”: { "macos-aarch64": { "dimensiune": 40660307, ​​​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ffc556347:"3, "98c347": "34c18.19.0": "64e18.19.0ca18.19.0e64e86 cale":" node- v64 -darwin-arm42202872/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v3/node-v37521058114-darwin-arm7. tar.gz" } ] }, "macos-x71_0": { "dimensiune": 3, "hash": "blake8042", "digest": "8e7908305f9115488e6de29fe514c9fa2e24c18.19.0fa64e18.19.0e18.19.0e64e86b64b44694523e3f72e81de3fe30c7fa1 „tar.gz”, „cale” : "node-v09 .3-darwin-x4478/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v1/node-v02-darwin- x5.tar.gz " } ] }, "linux-x0_04": { "dimensiune": 15, "hash": "blake23", "digest": "3b9fc89212a18.19.0b64bedc18.19.0a18.19.0a64fafcXNUMXaXNUMXbXNUMXdXNUMXeXNUMXeebXNUMXdXNUMXeXNUMXeebXNUMXdXNUMXeXNUMXeebXNUMXd", ": "tar.gz", " cale ": "node -vXNUMX-linux-xXNUMX/bin/node", "providers": [ { "url": "https://nodejs.org/dist/vXNUMX/node-vXNUMX- linux-xXNUMX.tar .gz" } ] } } }

Sursa: opennet.ru

Adauga un comentariu