Sobre o projeto
cargo-binstall oferece um mecanismo de baixa complexidade para instalar binários Rust como alternativa à compilação a partir do código-fonte via `cargo install` ou ao download manual de pacotes. Foi projetado para funcionar com artefatos e infraestrutura de CI existentes, com sobrecarga mínima para mantenedores de pacotes.
Como funciona: o Binstall obtém informações do crate no crates.io, pesquisa no repositório vinculado por releases e artefatos correspondentes, recorre ao host de artefatos de terceiros quickinstall, tenta alvos alternativos conforme suportado e, por fim, recorre ao `cargo install` como último recurso.
O uso é semelhante ao cargo install. Por exemplo, `cargo binstall radio-sx128x@0.14.1-alpha.5` resolve o pacote, baixa o binário do GitHub, lista os binários a instalar e pede confirmação. Para uso não assistido, como em CI, a flag `--no-confirm` está disponível. Opções adicionais são exibidas via `cargo binstall --help`.
As opções de instalação incluem scripts de uma linha para Linux e macOS, Homebrew, um one-liner do PowerShell para Windows, download manual de arquivos específicos por plataforma (Linux x86_64/armv7/arm64, macOS Intel/Apple Silicon/Universal, Windows x86_64/aarch64), compilação a partir do código-fonte com `cargo install cargo-binstall --locked` e uma GitHub Action de primeira parte. O projeto também recomenda a taiki-e/install-action de terceiros.
Ferramentas complementares mencionadas incluem cargo-update, que atualiza todas as ferramentas e usa o Binstall quando presente, e cargo-run-bin, que restringe ferramentas a um projeto e controla versões no Cargo.toml.
Para crates não suportados, os usuários podem especificar manualmente `pkg-url`, `bin-dir` e `pkg-fmt` na linha de comando. Os mantenedores podem adicionar metadados explícitos do Binstall ao Cargo.toml para localizar o pacote binário apropriado para uma determinada versão e alvo.
Assinaturas: há suporte inicial e limitado para que os mantenedores especifiquem uma chave pública de assinatura e onde encontrar as assinaturas do pacote. Com isso habilitado, o Binstall baixa e verifica as assinaturas. `--only-signed` recusa pacotes não assinados, enquanto `--skip-signatures` desativa a verificação ou o download de assinaturas.
Notas de segurança: os metadados são obtidos do crates.io via HTTPS e o checksum do tar do crate é verificado; HTTPS com TLS >= 1.2 é obrigatório para downloads de arquivos de pacote. Diferentemente de um script `curl | sh`, o Binstall não executa código arbitrário, embora o crate sendo instalado possa ser malicioso.
Telemetria: algumas estratégias de instalação podem coletar estatísticas de uso anonimizadas por padrão. Quando o host de artefatos quickinstall é usado, o nome do crate, a versão, o triple da plataforma de destino e o user agent são enviados para endpoints sob a URL do cargo-quickinstall-stats-server. Os dados agregados são publicamente acessíveis. Os métodos de opt-out incluem a flag `--disable-telemetry`, a variável de ambiente `BINSTALL_DISABLE_TELEMETRY`, a desativação da estratégia quickinstall ou a adição de `quick-install` à chave de configuração `disabled-strategies` nos metadados do crate.
Símbolos de depuração: pacotes pré-compilados extras com sufixo `.full` contêm debuginfo dividido, arquivos de documentação e binários extras, como o utilitário `detect-wasi`.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.