Binuksan ng Facebook ang code para sa proyekto ng DotSlash

Inanunsyo ng Facebook ang open source ng dotslash, isang command-line utility na idinisenyo upang gawing mas madali ang pamamahagi ng isang set ng mga executable na file para sa iba't ibang platform. Ang utility ay idinisenyo upang magpatakbo ng mga script na awtomatiko ang pag-download ng isang maipapatupad na file na angkop para sa kasalukuyang platform, sinusuri ang integridad at pagpapatupad nito. Ang utility code ay nakasulat sa Rust at ipinamamahagi sa ilalim ng MIT at Apache 2.0 na mga lisensya.

Nilulutas ng utility ang mga problemang katulad ng mga script ng shell para sa paglulunsad ng mga executable na file para sa kasalukuyang platform, ngunit kasabay nito ay inaalis ang pangangailangang isama ang mga executable na file para sa lahat ng sinusuportahang platform sa package. Pinapayagan ka rin ng DotSlash na mag-imbak ng impormasyon tungkol sa mga nakolektang executable na file sa isang repository kasama ang code, habang inilalagay ang mga file mismo sa magkahiwalay na mga boot server, na iniiwasan ang paglaki ng laki ng repositoryo at binabawasan ang load sa input/output system kapag gumaganap. mga operasyon sa pag-clone.

Kapag gumagamit ng DotSlash, ang hanay ng mga executable na file na partikular sa platform ay papalitan ng iisang script na may kasamang paglalarawan ng logic para sa pagpili ng executable na file kaugnay ng mga sinusuportahang platform. Pagkatapos magpatakbo ng isang DotSlash script, ang executable na file na kinakailangan para sa kasalukuyang platform ay dynamic na dina-download, na-unpack, na-verify laban sa isang cryptographic na hash, at iniimbak sa isang lokal na cache para sa mga kasunod na pagpapatakbo. Ang mga file ay inililipat sa naka-compress na anyo. Maaaring awtomatikong mabuo ang mga script ng DotSlash para sa mga release na na-publish sa GitHub.

Isang halimbawa ng DotSlash script para sa pamamahagi ng Node.js 18.19.0 build para sa macOS ARM64, macOS x86_64 at Linux x86_64 platform: #!/usr/bin/env dotslash { β€œname”: β€œnode-v18.19.0”, β€œ platforms”: { "macos-aarch64": { "size": 40660307, ​​​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347"c "d3ff98c" : " node- v347 -darwin-arm34/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v64-darwin-arm18.19.0. tar.gz" } ] }, "macos-x18.19.0_64": { "size": 86, "hash": "blake64", "digest": "42202872e3f37521058114e7de71fe0c3fa8042e8cd" .gz", "path" : "node-v7908305 .9115488-darwin-x6/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v29/node-v514-darwin- x9.tar.gz " } ] }, "linux-x2_24": { "size": 18.19.0, "hash": "blake64", "digest": "18.19.0b18.19.0fc64a86b64bedc44694523a3a72fafc81a3b30e7ebf1adformat", "09ebf3d4478", "1ebf02ad5" .gz", " path ": "node -v0-linux-x04/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v15/node-v23- linux-x3.tar .gz" } ] } } }

Pinagmulan: opennet.ru

Magdagdag ng komento