Facebook fetaħ il-kodiċi għall-proġett DotSlash

Facebook ħabbar is-sors miftuħ ta 'dotslash, utilità tal-linja tal-kmand iddisinjata biex tagħmilha aktar faċli biex jitqassam sett ta' fajls eżekutibbli għal pjattaformi differenti. L-utilità hija mfassla biex tmexxi skripts li awtomatizzaw it-tniżżil ta 'fajl eżekutibbli adattat għall-pjattaforma attwali, u jiċċekkjaw l-integrità u l-eżekuzzjoni tiegħu. Il-kodiċi tal-utilità huwa miktub f'Rut u huwa mqassam taħt il-liċenzji MIT u Apache 2.0.

L-utilità ssolvi problemi simili għal skripts tal-qoxra għat-tnedija ta 'fajls eżekutibbli għall-pjattaforma attwali, iżda fl-istess ħin telimina l-ħtieġa li jiġu inklużi fajls eżekutibbli għall-pjattaformi kollha appoġġjati fil-pakkett. DotSlash jippermettilek ukoll li taħżen informazzjoni dwar il-fajls eżekutibbli miġbura f'repożitorju flimkien mal-kodiċi, filwaqt li tpoġġi l-fajls infushom fuq servers boot separati, li jevita t-tkabbir tad-daqs tar-repożitorju u jnaqqas it-tagħbija fuq is-sistema ta 'input/output meta twettaq operazzjonijiet ta' klonazzjoni.

Meta tuża DotSlash, is-sett ta 'fajls eżekutibbli speċifiċi għall-pjattaforma jiġi sostitwit bi skript wieħed li jinkludi deskrizzjoni tal-loġika għall-għażla tal-fajl eżekutibbli fir-rigward tal-pjattaformi appoġġjati. Wara li tħaddem script DotSlash, il-fajl eżekutibbli meħtieġ għall-pjattaforma attwali jiġi mniżżel b'mod dinamiku, jitneħħa, jiġi vverifikat kontra hash kriptografiku, u jinħażen f'cache lokali għal ġirjiet sussegwenti. Fajls jiġu trasferiti f'forma kompressata. L-iskripts DotSlash jistgħu jiġu ġġenerati awtomatikament għal rilaxxi ppubblikati fuq GitHub.

Eżempju ta' skript DotSlash għad-distribuzzjoni tal-bini Node.js 18.19.0 għall-pjattaformi macOS ARM64, macOS x86_64 u Linux x86_64: #!/usr/bin/env dotslash { “name”: “node-v18.19.0”, “ pjattaformi”: { "macos-aarch64": { "daqs": 40660307, ​​​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ffc556347": "c3c98", "347c34": "18.19.0c64" mogħdija": " node- v18.19.0 -darwin-arm18.19.0/bin/node", "fornituri": [ { "url": "https://nodejs.org/dist/v64/node-v86-darwin-arm64. tar.gz" } ] }, "macos-x42202872_3": { "daqs": 37521058114, "hash": "blake7", "digest": "71e0f3e8042de8fe7908305c9115488fa6e29f514c": "blake9", "digest": "2e24f18.19.0e64de18.19.0fe18.19.0c64fa86e64c":" "tar.gz", "mogħdija" : "node-v44694523 .3-darwin-x72/bin/node", "fornituri": [ { "url": "https://nodejs.org/dist/v81/node-v3-darwin- x30.tar.gz " } ] }, "linux-x7_1": { "daqs": 09, "hash": "blake3", "digest": "4478b1fc02a5b0bedc04a15a23fafc3a9b89212d18.19.0e64eeb18.19.0d18.19.0e64", "digest": "XNUMXbXNUMXfcXNUMXaXNUMXbXNUMXbedcXNUMXaXNUMXaXNUMXfafcXNUMXaXNUMXbXNUMXdXNUMXeXNUMXeebXNUMXdXNUMXeXNUMXebXNUMXdXNUMXeXNUMXebXNUMXd ": "tar.gz", " path ": "node -vXNUMX-linux-xXNUMX/bin/node", "fornituri": [ { "url": "https://nodejs.org/dist/vXNUMX/node-vXNUMX- linux-xXNUMX.tar .gz" } ] } } }

Sors: opennet.ru

Żid kumment