Facebook ha aperto il codice per il progetto DotSlash

Facebook ha annunciato l'open source di dotslash, un'utilità a riga di comando progettata per semplificare la distribuzione di una serie di file eseguibili per diverse piattaforme. L'utilità è progettata per eseguire script che automatizzano il download di un file eseguibile adatto alla piattaforma corrente, verificandone l'integrità e l'esecuzione. Il codice dell'utilità è scritto in Rust ed è distribuito sotto le licenze MIT e Apache 2.0.

L'utilità risolve problemi simili agli script di shell per l'avvio di file eseguibili per la piattaforma corrente, ma allo stesso tempo elimina la necessità di includere file eseguibili per tutte le piattaforme supportate nel pacchetto. DotSlash consente inoltre di archiviare informazioni sui file eseguibili raccolti in un repository insieme al codice, posizionando i file stessi su server di avvio separati, il che evita la crescita delle dimensioni del repository e riduce il carico sul sistema di input/output durante l'esecuzione operazioni di clonazione.

Quando si utilizza DotSlash, l'insieme di file eseguibili specifici della piattaforma viene sostituito con un unico script che include una descrizione della logica di selezione del file eseguibile in relazione alle piattaforme supportate. Dopo aver eseguito uno script DotSlash, il file eseguibile richiesto per la piattaforma corrente viene scaricato dinamicamente, decompresso, verificato rispetto a un hash crittografico e archiviato in una cache locale per le esecuzioni successive. I file vengono trasferiti in formato compresso. Gli script DotSlash possono essere generati automaticamente per le versioni pubblicate su GitHub.

Un esempio di uno script DotSlash per la distribuzione delle build Node.js 18.19.0 per le piattaforme macOS ARM64, macOS x86_64 e Linux x86_64: #!/usr/bin/env dotslash { “name”: “node-v18.19.0”, “ piattaforme”: { "macos-aarch64": { "size": 40660307, ​​​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347c3d98c347c34", "format": "tar.gz", "path": " node- v18.19.0 -darwin-arm64/bin/node", "provider": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-arm64. tar.gz" } ] }, "macos-x86_64": { "size": 42202872, "hash": "blake3", "digest": "37521058114e7f71e0de3fe8042c8fa7908305e9115488c6c29b514f9cd2a24c", "format": "tar.gz", "path " : "node-v18.19.0 .64-darwin-x18.19.0/bin/node", "provider": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v64-darwin- x86.tar.gz " } ] }, "linux-x64_44694523": { "size": 3, "hash": "blake72", "digest": "81b3fc30a7b1bedc09a3a4478fafc1a02b5e0ebf04ad15ea23d3b9e89212dc18.19.0", "format": "tar.gz", " percorso ": "node -v64-linux-x18.19.0/bin/node", "provider": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v64- linux-xXNUMX.tar .gz" } ] } } }

Fonte: opennet.ru

Aggiungi un commento