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 rezolvă probleme similare cu scripturile shell pentru lansarea fișierelor executabile pentru platforma actuală, dar în același timp elimină necesitatea includerii fișierelor executabile pentru toate platformele acceptate în pachet. DotSlash vă permite, de asemenea, să stocați informații despre fișierele executabile colectate într-un depozit împreună cu codul, plasând în același timp fișierele pe servere de pornire separate, ceea ce evită creșterea dimensiunii depozitului și reduce încărcarea sistemului de intrare/ieșire 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