Facebook hà apertu u codice per u prughjettu DotSlash

Facebook hà annunziatu a fonte aperta di dotslash, una utilità di linea di cumanda pensata per fà più faciule per distribuisce un inseme di fugliali eseguibili per e diverse piattaforme. L'utilità hè pensata per eseguisce scripts chì automatizanu a scaricamentu di un schedariu eseguibile adattatu per a piattaforma attuale, cuntrollà a so integrità è l'esekzione. U codice di utilità hè scrittu in Rust è hè distribuitu sottu licenze MIT è Apache 2.0.

L'utilità risolve i prublemi simili à i script di shell per lancià i fugliali eseguibili per a piattaforma attuale, ma à u stessu tempu elimina a necessità di include i schedarii eseguibili per tutte e plataforme supportate in u pacchettu. DotSlash permette ancu di almacenà l'infurmazioni nantu à i fugliali eseguibili raccolti in un repository inseme cù u codice, mentre mette i schedari stessi nantu à i servitori di boot separati, chì evita a crescita di a dimensione di u repository è riduce a carica nantu à u sistema di input / output quandu eseguisce. operazioni di clonazione.

Quandu si usa DotSlash, u settore di schedarii eseguibili specifichi di a piattaforma hè rimpiazzatu cù un unicu script chì include una descrizzione di a logica per selezziunà u schedariu eseguibile in relazione à e plataforme supportate. Dopu avè eseguitu un script DotSlash, u schedariu eseguibile necessariu per a piattaforma attuale hè scaricatu dinamicamente, unpacked, verificatu contr'à un hash criptograficu, è almacenatu in una cache locale per eseguite successive. I schedari sò trasferiti in forma cumpressa. I scripts DotSlash ponu esse generati automaticamente per e versioni publicati in GitHub.

Un esempiu di un script DotSlash per a distribuzione di Node.js 18.19.0 builds per e piattaforme macOS ARM64, macOS x86_64 è Linux x86_64: #!/usr/bin/env dotslash { "name": "node-v18.19.0", " piattaforme": { "macos-aarch64": { "size": 40660307, ​​​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347d3ff98d347bf34d18.19.0bf64d18.19.0f18.19.0d64f86d64f42202872d3c37521058114d7d71bf0d3c8042d8d7908305d9115488bf6bf29bf514dest strada": " node- v9 -darwin-arm2/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v24/node-v18.19.0-darwin-arm64. tar.gz" } ] }, "macos-x18.19.0_18.19.0": { "size": 64, "hash": "blake86", "digest": "64e44694523f3e72de81fe3c30fa7e1e09, "hash": "blake3", "digest": "4478e1f02e5de0fe04c15fa23e3e9" "tar.gz", "path" : "node-v89212 .18.19.0-darwin-x64/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v18.19.0/node-v18.19.0-darwin- x64.tar.gz " } ] }, "linux-xXNUMX_XNUMX": { "size": XNUMX, "hash": "blakeXNUMX", "digest": "XNUMXbXNUMXfcXNUMXaXNUMXbXNUMXbedcXNUMXaXNUMXaXNUMXfafcXNUMXaXNUMXbXNUMXdXNUMXeXNUMXeebXNUMXd", ": "tar.gz", " path ": "node -vXNUMX-linux-xXNUMX/bin/node", "providers": [ { "url": "https://nodejs.org/dist/vXNUMX/node-vXNUMX- linux-xXNUMX.tar .gz" } ] } } }

Source: opennet.ru

Add a comment