Об этом проекте

cargo-binstall предоставляет низкосложный механизм установки бинарников Rust как альтернативу сборке из исходников через `cargo install` или ручному скачиванию пакетов. Он рассчитан на работу с существующими CI-артефактами и инфраструктурой с минимальными затратами для сопровождающих пакетов. Как это работает: Binstall получает информацию о крейте с crates.io, ищет в связанном репозитории подходящие релизы и артефакты, при неудаче обращается к стороннему хранилищу артефактов quickinstall, пробует альтернативные целевые платформы, если они поддерживаются, и в крайнем случае откатывается к `cargo install`. Использование похоже на cargo install. Например, `cargo binstall radio-sx128x@0.14.1-alpha.5` разрешает пакет, скачивает бинарник с GitHub, выводит список устанавливаемых бинарников и запрашивает подтверждение. Для автоматического использования, например в CI, доступен флаг `--no-confirm`. Дополнительные опции показаны через `cargo binstall --help`. Варианты установки включают однострочные скрипты для Linux и macOS, Homebrew, однострочник PowerShell для Windows, ручное скачивание архивов для конкретных платформ (Linux x86_64/armv7/arm64, macOS Intel/Apple Silicon/Universal, Windows x86_64/aarch64), сборку из исходников командой `cargo install cargo-binstall --locked` и собственный GitHub Action. Проект также рекомендует сторонний taiki-e/install-action. Среди упомянутых сопутствующих инструментов — cargo-update, который обновляет все инструменты и использует Binstall при его наличии, и cargo-run-bin, который ограничивает инструменты рамками проекта и управляет версиями в Cargo.toml. Для неподдерживаемых крейтов пользователи могут вручную указать `pkg-url`, `bin-dir` и `pkg-fmt` в командной строке. Сопровождающие могут добавить явные метаданные Binstall в Cargo.toml, чтобы находить подходящий бинарный пакет для заданной версии и целевой платформы. Подписи: есть начальная ограниченная поддержка, позволяющая сопровождающим указать открытый ключ подписи и местонахождение подписей пакетов. При включении этой функции Binstall скачивает и проверяет подписи. `--only-signed` отклоняет неподписанные пакеты, а `--skip-signatures` отключает проверку или скачивание подписей. Примечания по безопасности: метаданные загружаются с crates.io по HTTPS, контрольная сумма tar-архива крейта проверяется; для скачивания файлов пакетов обязателен HTTPS с TLS >= 1.2. В отличие от скрипта `curl | sh`, Binstall не выполняет произвольный код, хотя сам устанавливаемый крейт может оказаться вредоносным. Телеметрия: некоторые стратегии установки могут по умолчанию собирать анонимизированную статистику использования. При использовании хранилища артефактов quickinstall имя крейта, версия, тройка целевой платформы и user agent отправляются на конечные точки под URL cargo-quickinstall-stats-server. Агрегированные данные общедоступны. Способы отказа включают флаг `--disable-telemetry`, переменную окружения `BINSTALL_DISABLE_TELEMETRY`, отключение стратегии quickinstall или добавление `quick-install` в ключ конфигурации `disabled-strategies` в метаданных крейта. Отладочные символы: дополнительные предсобранные пакеты с суффиксом `.full` содержат разделённую отладочную информацию, файлы документации и дополнительные бинарники, такие как утилита `detect-wasi`.