Facebook heeft de code voor het DotSlash-project geopend

Facebook heeft de open source aangekondigd van dotslash, een opdrachtregelhulpprogramma dat is ontworpen om het gemakkelijker te maken een reeks uitvoerbare bestanden voor verschillende platforms te distribueren. Het hulpprogramma is ontworpen om scripts uit te voeren die het downloaden van een uitvoerbaar bestand dat geschikt is voor het huidige platform automatiseren, waarbij de integriteit en uitvoering ervan wordt gecontroleerd. De hulpprogrammacode is geschreven in Rust en wordt gedistribueerd onder de MIT- en Apache 2.0-licenties.

Het hulpprogramma lost problemen op die vergelijkbaar zijn met shellscripts voor het starten van uitvoerbare bestanden voor het huidige platform, maar elimineert tegelijkertijd de noodzaak om uitvoerbare bestanden voor alle ondersteunde platforms in het pakket op te nemen. Met DotSlash kunt u ook informatie over de verzamelde uitvoerbare bestanden samen met de code in een repository opslaan, terwijl u de bestanden zelf op afzonderlijke opstartservers plaatst, waardoor de groei van de repositorygrootte wordt vermeden en de belasting van het invoer-/uitvoersysteem wordt verminderd tijdens het uitvoeren van kloonoperaties.

Bij gebruik van DotSlash wordt de set platformspecifieke uitvoerbare bestanden vervangen door één enkel script dat een beschrijving bevat van de logica voor het selecteren van het uitvoerbare bestand in relatie tot de ondersteunde platforms. Na het uitvoeren van een DotSlash-script wordt het uitvoerbare bestand dat nodig is voor het huidige platform dynamisch gedownload, uitgepakt, geverifieerd aan de hand van een cryptografische hash en opgeslagen in een lokale cache voor volgende uitvoeringen. Bestanden worden in gecomprimeerde vorm overgedragen. DotSlash-scripts kunnen automatisch worden gegenereerd voor releases die op GitHub zijn gepubliceerd.

Een voorbeeld van een DotSlash-script voor het distribueren van Node.js 18.19.0-builds voor de macOS ARM64-, macOS x86_64- en Linux x86_64-platforms: #!/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", "pad" : "node-v18.19.0 .64-darwin-x18.19.0/bin/node", "providers": [ { "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", " pad ": "node -v64-linux-x18.19.0/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v64- linux-xXNUMX.tar .gz" } ] } } }

Bron: opennet.ru

Voeg een reactie