Το Facebook άνοιξε τον κώδικα για το έργο DotSlash

Το Facebook ανακοίνωσε τον ανοιχτό κώδικα του dotslash, ένα βοηθητικό πρόγραμμα γραμμής εντολών που έχει σχεδιαστεί για να διευκολύνει τη διανομή ενός συνόλου εκτελέσιμων αρχείων για διαφορετικές πλατφόρμες. Το βοηθητικό πρόγραμμα έχει σχεδιαστεί για να εκτελεί σενάρια που αυτοματοποιούν τη λήψη ενός εκτελέσιμου αρχείου κατάλληλου για την τρέχουσα πλατφόρμα, ελέγχοντας την ακεραιότητα και την εκτέλεσή του. Ο κωδικός βοηθητικού προγράμματος είναι γραμμένος σε Rust και διανέμεται με τις άδειες MIT και Apache 2.0.

Το βοηθητικό πρόγραμμα επιλύει προβλήματα παρόμοια με τα σενάρια φλοιού για την εκκίνηση εκτελέσιμων αρχείων για την τρέχουσα πλατφόρμα, αλλά ταυτόχρονα εξαλείφει την ανάγκη συμπερίληψης εκτελέσιμων αρχείων για όλες τις υποστηριζόμενες πλατφόρμες στο πακέτο. Το DotSlash σάς επιτρέπει επίσης να αποθηκεύετε πληροφορίες σχετικά με τα συλλεγμένα εκτελέσιμα αρχεία σε ένα αποθετήριο μαζί με τον κώδικα, ενώ τοποθετείτε τα ίδια τα αρχεία σε ξεχωριστούς διακομιστές εκκίνησης, γεγονός που αποφεύγει την αύξηση του μεγέθους του αποθετηρίου και μειώνει το φορτίο στο σύστημα εισόδου/εξόδου κατά την εκτέλεση κλωνοποίηση.

Όταν χρησιμοποιείτε το DotSlash, το σύνολο των εκτελέσιμων αρχείων για συγκεκριμένη πλατφόρμα αντικαθίσταται από ένα σενάριο που περιλαμβάνει μια περιγραφή της λογικής για την επιλογή του εκτελέσιμου αρχείου σε σχέση με τις υποστηριζόμενες πλατφόρμες. Μετά την εκτέλεση μιας δέσμης ενεργειών DotSlash, το εκτελέσιμο αρχείο που απαιτείται για την τρέχουσα πλατφόρμα γίνεται δυναμική λήψη, αποσυσκευασία, επαλήθευση έναντι κρυπτογραφικού κατακερματισμού και αποθήκευση σε μια τοπική κρυφή μνήμη για τις επόμενες εκτελέσεις. Τα αρχεία μεταφέρονται σε συμπιεσμένη μορφή. Τα σενάρια DotSlash μπορούν να δημιουργηθούν αυτόματα για εκδόσεις που δημοσιεύονται στο GitHub.

Ένα παράδειγμα σεναρίου DotSlash για τη διανομή εκδόσεων Node.js 18.19.0 για τις πλατφόρμες macOS ARM64, macOS x86_64 και Linux x86_64: #!/usr/bin/env dotslash { “name”: “node-v18.19.0”, “ πλατφόρμες": { "macos-aarch64": { "μέγεθος": 40660307, ​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5bf556347d3ffform",98atd347"34c μονοπάτι": " 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": { "μέγεθος": 42202872, "hash": "blake3", "digest": "37521058114e7f71e0de3fe8042c8fa7908305e9115488c"6cdc : "tar.gz", "διαδρομή" : "node-v29 .514-darwin-x9/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v2/node-v24-darwin- x18.19.0.tar.gz " } ] }, "linux-x64_18.19.0": { "size": 18.19.0, "hash": "blake64", "digest": "86b64fc44694523a3b72bedc81a3a30fafc7a1b09ddform",3eb ": "tar.gz", " διαδρομή ": "node -v4478-linux-x1/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v02/node-v5- linux-x0.tar .gz" } ] } } }

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο