Facebook het die oopbron van dotslash aangekondig, 'n opdragreëlprogram wat ontwerp is om dit makliker te maak om 'n stel uitvoerbare lêers vir verskillende platforms te versprei. Die hulpprogram is ontwerp om skrifte uit te voer wat die aflaai van 'n uitvoerbare lêer wat geskik is vir die huidige platform outomatiseer, en die integriteit en uitvoering daarvan nagaan. Die nutskode is in Rust geskryf en word onder die MIT- en Apache 2.0-lisensies versprei.
Die hulpprogram verrig take soortgelyk aan dopskripte vir die bekendstelling van uitvoerbare lêers vir die huidige platform, maar elimineer die behoefte om uitvoerbare lêers vir alle ondersteunde platforms in te sluit. DotSlash laat jou ook toe om inligting oor saamgestelde uitvoerbare lêers in 'n bewaarplek saam met die kode te stoor, terwyl die lêers self op aparte opstartskywe geplaas word. bedieners, wat jou toelaat om groei van die bewaarplekgrootte te vermy en die las op die I/O-stelsel te verminder wanneer kloonbewerkings uitgevoer word.
Wanneer DotSlash gebruik word, word die stel platformspesifieke uitvoerbare lêers vervang met 'n enkele skrif wat 'n beskrywing van die logika vir die kies van die uitvoerbare lêer insluit in verhouding tot die ondersteunde platforms insluit. Nadat 'n DotSlash-skrip uitgevoer is, word die uitvoerbare lêer wat vir die huidige platform benodig word, dinamies afgelaai, uitgepak, teen 'n kriptografiese hash geverifieer en in 'n plaaslike kas gestoor vir daaropvolgende lopies. Lêers word in saamgeperste vorm oorgedra. DotSlash-skrifte kan outomaties gegenereer word vir vrystellings wat op GitHub gepubliseer is.
'n Voorbeeld DotSlash-skrip vir die verspreiding van Node.js 18.19.0-weergawes vir platforms macOS ARM64, macOS x86_64 en Linux x86_64: #!/usr/bin/env puntskuinsstreep { "naam": "node-v18.19.0", "platforms": { "macos-aarch64": { "grootte": 40660307, "hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347c3d98c347c34", "formaat": "tar.gz", "pad": "node-v18.19.0-darwin-arm64/bin/node", "verskaffers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-arm64.tar.gz" } ] }, "macos-x86_64": { "grootte": 42202872, "hash": "blake3", "digest": "37521058114e7f71e0de3fe8042c8fa7908305e9115488c6c29b514f9cd2a24c", "formaat": "tar.gz", "pad": "node-v18.19.0-darwin-x64/bin/node", "verskaffers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-x64.tar.gz" } ] }, "linux-x86_64": { "grootte": 44694523, "hash": "blake3", "digest": "72b81fc3a30b7bedc1a09a3fafc4478a1b02e5ebf0ad04ea15d23b3e9dc89212", "formaat": "tar.gz", "pad": "node-v18.19.0-linux-x64/bin/node", "verskaffers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-linux-x64.tar.gz" } ] } } }
Bron: opennet.ru
