Facebook открыл код проекта DotSlash

Facebook объявил об открытии кода утилиты командной строки dotslash, созданной для упрощения распространения набора исполняемых файлов для разных платформ. Утилита рассчитана на выполнение сценариев, автоматизирующих загрузку подходящего для текущей платформы исполняемого файла, проверку его целостности и исполнение. Код утилиты написан на языке Rust и распространяется под лицензиями MIT и Apache 2.0.

Утилита решает задачи, схожие с shell-скриптами для запуска исполняемых файлов для текущей платформы, но при этом избавляет от необходимости включения в комплект исполняемых файлов для всех поддерживаемых платформ. 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», «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» } ] } } }

Источник: opennet.ru

author avatar
ProHoster Консультант, Технический специалист
A technical specialist at ProHoster with over six years of experience in server administration, VPN solutions, and network security. I manage infrastructure setup and support, monitor service stability, and implement solutions to protect client data. I also contribute to performance optimization and compliance with modern security and privacy requirements.

Добавить комментарий