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 acargo 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
(asjobslot
),tar
(asbinstall-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)