github cargo-bins/cargo-binstall v0.13.0

latest releases: v1.3.1, binstalk-v0.16.1, binstalk-registry-v0.1.1...
20 months ago

Yanked, unreleased. Use 0.13.1 instead.

Binstall is a tool to fetch and install Rust-based executables as binaries. It aims to be a drop-in replacement for cargo install in most cases. Install it today with cargo install cargo-binstall, from the binaries below, or if you already have it, upgrade with cargo binstall cargo-binstall.

In this release:

  • Binstall now aggressively scans the remote for a download URL if not given exact details in the metadata:

    • the filename is guessed from a wider range of version/name/target combinations (#296, #329)
    • the version can be with or without preceding v (#328)
    • the file extension can be any of the standard extensions for the supported archive formats (#295, #310)

    This means that many more packages will install out of the box without needing configuration.

  • Binstall now also tries to guess the download URL for other repositories than GitHub: GitLab, BitBucket, and SourceForge. (#296, #322, #360)

  • Downloads can now only be done over HTTPS, with TLS 1.2 or over. This also deprecates the --secure option, which enabled this; for compatibility it is still accepted but will do nothing. (#124, #343)

  • The source has been broken up into several crates. There are the single-purpose libraries detect-targets, detect-wasi, fs-lock, normalize-path (all licensed as Apache/MIT); and the "binstall library/toolkit", binstalk (GPL). The main interface remains the tool itself, cargo-binstall. (#294, #307, #331, #338, #341, #359, #361)

Other changes:

  • Fix regression where we would prompt even if there was nothing to do. (#291, #293)
  • Improve an error message when an expected file is not found in the downloaded package. (#301)
  • Use Trust DNS for hostname resolution. (#318, #323)
  • Use rustls on all platforms. This notably makes it easier to install on Windows, but also provides consistent TLS 1.3 support everywhere. (#318)
  • Use cargo-bins/release-pr for the release process. (#330, #336, #345, #350, #364)
  • Recommend taiki-e/install-action as the way to use Binstall in CI. (#342)
  • Installing via cargo install cargo-binstall no longer tries to use the high performance zlib-ng, which was causing compile issues on Windows. Instead the pure Rust miniz-oxide implementation is used. Pre-built binaries still use zlib-ng, so do a cargo binstall cargo-binstall immediately after installing from source to get it. (#354)
  • We've forked a couple of crates to apply fixes to them: jobserver (as jobslot), tar (as binstall-tar).
  • The tar fork includes support for PAX, which fixes a longstanding and very annoying bug seen occasionally where a package would fail to install with a confusing error. We hope to upstream the fix, this is not meant to be a permanent fork. (#177, alexcrichton/tar-rs#295, cargo-bins/cargo-quickinstall#87, #301, #358)
  • Various minor optimisations. (#321, #324, #325)
  • The crates.io API calls now share the same HTTP client as the rest of Binstall; this notably enforces HTTPS and TLS version policies globally. (#349)
  • Many dependency updates: clap, miette, serde, and others (#297, #298, #299, #300, #308)

Don't miss a new cargo-binstall release

NewReleases is sending notifications on new releases.