Facebook hat den Code für das DotSlash-Projekt geöffnet

Facebook kündigte die Open Source von dotslash an, einem Befehlszeilen-Dienstprogramm, das die Verteilung einer Reihe ausführbarer Dateien für verschiedene Plattformen erleichtern soll. Das Dienstprogramm dient zum Ausführen von Skripten, die den Download einer für die aktuelle Plattform geeigneten ausführbaren Datei automatisieren und deren Integrität und Ausführung überprüfen. Der Dienstprogrammcode ist in Rust geschrieben und wird unter den MIT- und Apache 2.0-Lizenzen vertrieben.

Das Dienstprogramm löst ähnliche Probleme wie Shell-Skripte zum Starten ausführbarer Dateien für die aktuelle Plattform, macht aber gleichzeitig die Notwendigkeit aus, ausführbare Dateien für alle unterstützten Plattformen in das Paket aufzunehmen. Mit DotSlash können Sie außerdem Informationen über die gesammelten ausführbaren Dateien zusammen mit dem Code in einem Repository speichern und gleichzeitig die Dateien selbst auf separaten Boot-Servern platzieren, wodurch ein Anwachsen der Repository-Größe vermieden und die Belastung des Eingabe-/Ausgabesystems bei der Ausführung verringert wird Klonvorgänge.

Bei der Verwendung von DotSlash wird der Satz plattformspezifischer ausführbarer Dateien durch ein einzelnes Skript ersetzt, das eine Beschreibung der Logik zur Auswahl der ausführbaren Datei in Bezug auf die unterstützten Plattformen enthält. Nach der Ausführung eines DotSlash-Skripts wird die für die aktuelle Plattform erforderliche ausführbare Datei dynamisch heruntergeladen, entpackt, anhand eines kryptografischen Hashs überprüft und für nachfolgende Ausführungen in einem lokalen Cache gespeichert. Dateien werden in komprimierter Form übertragen. DotSlash-Skripte können automatisch für auf GitHub veröffentlichte Releases generiert werden.

Ein Beispiel für ein DotSlash-Skript zum Verteilen von Node.js 18.19.0-Builds für die Plattformen macOS ARM64, macOS x86_64 und Linux x86_64: #!/usr/bin/env dotslash { „name“: „node-v18.19.0“, „ Plattformen“: { „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.g z“, „Pfad“ : „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", " path ": "node -v64-linux-x18.19.0/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v64- linux-xXNUMX.tar .gz" } ] } } }

Source: opennet.ru

Kommentar hinzufügen