Facebook har tillkännagivit öppen källkod för kommandoradsverktyget dotslash, utformat för att förenkla distributionen av en uppsättning körbara filer för olika plattformar. Verktyget är utformat för att köra skript som automatiserar nedladdningen av en körbar fil som är lämplig för den aktuella plattformen, dess integritetskontroll och exekvering. Verktygskoden är skriven i Rust och distribueras under MIT- och Apache 2.0-licenserna.
Verktyget utför uppgifter som liknar shell-skript för att starta körbara filer för den aktuella plattformen, men eliminerar behovet av att inkludera körbara filer för alla plattformar som stöds. DotSlash låter dig också lagra information om kompilerade körbara filer i ett arkiv tillsammans med koden, samtidigt som filerna själva placeras på separata startdiskar. servrar, vilket gör att du kan undvika att arkivets storlek ökar och minska belastningen på I/O-systemet när du utför kloningsåtgärder.
När DotSlash används ersätts en uppsättning plattformsspecifika körbara filer av ett enda skript som innehåller en beskrivning av den körbara vallogiken som är specifik för de plattformar som stöds. När DotSlash-skriptet har körts laddas den körbara filen som krävs för den aktuella plattformen dynamiskt ner, packas upp, verifieras med kryptografisk hash och sparas i den lokala cachen för efterföljande körningar. Filer överförs i komprimerad form. DotSlash-skript kan genereras automatiskt för utgåvor som publiceras på GitHub.
Пример DotSlash-сценария для распространения сборок Node.js 18.19.0 для платформ macOS ARM64, macOS x86_64 и Linux x86_64: #!/usr/bin/env dotslash { «name»: «node-v18.19.0», «platforms»: { «macos-aarch64»: { «size»: 40660307, «hash»: «blake3», «digest»: «6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347c3d98c347c34», «format»: «tar.gz», «path»: «node-v18.19.0-darwin-arm64/bin/node», «providers»: [ { «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-darwin-x64/bin/node», «providers»: [ { «url»: «https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin-x64.tar.gz» } ] }, «linux-x86_64»: { «size»: 44694523, «hash»: «blake3», «digest»: «72b81fc3a30b7bedc1a09a3fafc4478a1b02e5ebf0ad04ea15d23b3e9dc89212», «format»: «tar.gz», «path»: «node-v18.19.0-linux-x64/bin/node», «providers»: [ { «url»: «https://nodejs.org/dist/v18.19.0/node-v18.19.0-linux-x64.tar.gz» } ] } } }
Källa: opennet.ru
