Facebook njoftoi publikimin me kod të hapur të programit të linjës së komandës dotslash, i projektuar për të thjeshtuar shpërndarjen e skedarëve të ekzekutueshëm për platforma të ndryshme. Programi është projektuar për të ekzekutuar skripte që automatizojnë shkarkimin e një skedari të ekzekutueshëm të përshtatshëm për platformën aktuale, verifikimin e integritetit të tij dhe ekzekutimin. Kodi i programit është shkruar në Rust dhe shpërndahet sipas licencave MIT dhe Apache 2.0.
Programi kryen detyra të ngjashme me skriptet e shell-it për nisjen e skedarëve të ekzekutueshëm për platformën aktuale, por eliminon nevojën për të përfshirë skedarë të ekzekutueshëm për të gjitha platformat e mbështetura. DotSlash gjithashtu ju lejon të ruani informacion në lidhje me skedarët e ekzekutueshëm të kompiluar në një depo së bashku me kodin, ndërsa vetë skedarët i vendos në disqe të veçanta nisjeje. serverat, e cila ju lejon të shmangni rritjen e madhësisë së depos dhe të zvogëloni ngarkesën në sistemin I/O gjatë kryerjes së operacioneve të klonimit.
Kur përdoret DotSlash, një grup skedarësh ekzekutues specifikë për platformën zëvendësohet me një skript të vetëm, i cili përfshin një përshkrim të logjikës së përzgjedhjes së skedarit ekzekutues specifik për platformat e mbështetura. Pas ekzekutimit të skriptit DotSlash, skedari ekzekutues i kërkuar për platformën aktuale shkarkohet dinamikisht, çpaketohet, verifikohet duke përdorur një hash kriptografik dhe ruhet në memorjen lokale për ekzekutimet pasuese. Skedarët transferohen në formë të kompresuar. Skriptet DotSlash mund të gjenerohen automatikisht për versionet e publikuara në GitHub.
NjĂ« shembull skripti DotSlash pĂ«r shpĂ«rndarjen e versioneve Node.js 18.19.0 pĂ«r platformat macOS ARM64, macOS x86_64 dhe Linux x86_64: #!/usr/bin/env dotslash { "emri": "nyja-v18.19.0", "platformat": { "macos-aarch64": { "madhĂ«sia": 40660307, ââââ"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347c3d98c347c34", "formati": "tar.gz", "shtegu": "nyja-v18.19.0-darwin-arm64/bin/nyja", "ofruesit": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-arm64.tar.gz" } ] }, "macos-x86_64": { "madhĂ«sia": 42202872, "hash": "blake3", "digest": "37521058114e7f71e0de3fe8042c8fa7908305e9115488c6c29b514f9cd2a24c", "formati": "tar.gz", "shtegu": "nyja-v18.19.0-darwin-x64/bin/nyja", "ofruesit": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-x64.tar.gz" } ] }, "linux-x86_64": { "madhĂ«sia": 44694523, "hash": "blake3", "digest": "72b81fc3a30b7bedc1a09a3fafc4478a1b02e5ebf0ad04ea15d23b3e9dc89212", "formati": "tar.gz", "shtegu": "nyja-v18.19.0-linux-x64/bin/nyja", "ofruesit": [ { "url": "https://nodejs.org/dist/v18.19.0/nyja-v18.19.0-linux-x64.tar.gz" } ] } } }
Burimi: opennet.ru
