Skip to content

Releases: cargo-bins/cargo-binstall

v1.3.0

25 Aug 11:32
d2c3377
Compare
Choose a tag to compare

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:

Features

  • Use crates.io sparse index by default for efficiency (#1295 #1310 #1314)
  • Handle Ctrl+C and cancellation via signal during git cloning (#1288)

BugFixes

  • Fix QUIC endpoint error: Bump reqwest to v0.11.19 (#1292 #1308)
  • Use global rate-limit for crates.io registry use
  • Error more clearly if packages don't contain a required binary (#1298)

v1.2.1

11 Aug 07:46
6a1d317
Compare
Choose a tag to compare

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.

Bugfixes

  • Fix fallback to x86_64h-apple-darwin on aarch64-apple-darwin: Now it only fallbacks if arch -arch x86_64h /usr/bin/true success since Rosetta 2 doesn't support AVX yet (#1277 #1278)
  • Fix our universal-apple-darwin pre-built listed below for pre-haswell Intel CPUs (#1277 #1279)
  • Fix our installation script and the action on MacOS: Since it users our universal binary by default and the GHA MacOS runner uses pre-haswell Intel CPU, it will fail due to bad cpu type (#1277 #1279)

v1.2.0

10 Aug 12:35
ea1a34b
Compare
Choose a tag to compare

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.

[Reddit] [Bluesky] [Twitter] [Masto]

In this release:

  • We now verify checksum integrity of the crate metadata downloaded from registries (#1183, #1260)

  • Pre-built binaries below now support HTTP/3. When building from source, you can use the http3 feature and the --cfg reqwest_unstable rustflag to opt-in to HTTP/3 support as well. (#1261)

  • We've added out-of-the-box support for more variants of monorepos (#1244, #1245)

  • We now support passing a workspace to --manifest-path (#1246)

    Previously we would load the root Cargo.toml and treat it as the manifest for the crate, which did not work as expected for workspaces.

  • We now provide x86_64h-apple-darwin (Intel Haswell architecture tuning) pre-built binaries, for higher performance on macOS! Universal builds are also improved. (#1228, #1234, #1238)

  • And of course we support installing binaries for the x86_64h-apple-darwin target. (#1233)

  • Finally, we have a new, minimal GitHub Action: - uses: cargo-bins/cargo-binstall@main will install the latest cargo-binstall and do nothing else. (#1269, contributed by @smallstepman)

Bugfixes:

  • We've fixed issues that resulted in your terminals getting flooded with too many 429 responses. (#1229, #1231, with thanks to @CAD97, @halostatue, and @0atman)
  • We are now case-insensitive when reading the CARGO_REGISTRIES_{registry_name}_INDEX environment variables (#1258)
  • The installation scripts had a few bugs:
    • On macOS, it would fail if you had the stock bash (#1254, #1263)
    • It would show a spurious warning if $CARGO_HOME/bin was already in $PATH (#1239, contributed by @tyilo)
    • It would fail if CARGO_HOME didn't exist (#1241, contributed by @gifnksm)

Thank you!

If you've made it this far, thank you! If you care about package signing, or have opinions on it, especially but not exclusively in the Rust context, please visit #1 and tell us all about it!

install-cargo-binstall-1.0.0

10 Aug 12:47
ea1a34b
Compare
Choose a tag to compare

Install cargo-binstall by adding the following line to your CI:

  - uses: cargo-bins/cargo-binstall@main

v1.1.2

21 Jul 11:14
38d37c6
Compare
Choose a tag to compare

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.

Bugfix

  • Fix failure to send quickinstall report (#1222 #1224)

v1.1.1

19 Jul 05:59
3d6a93f
Compare
Choose a tag to compare

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:

v1.1.0

18 Jul 15:05
07bc44e
Compare
Choose a tag to compare

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.

Features

  • feat: Support --verbose --version/-vV (#627 #1182)
    that provides more information:

    cargo-binstall: 1.0.0
    build-date: 2023-07-18
    build-target: aarch64-apple-darwin
    build-features: default,fancy_no_backtrace,git,rustls,static,trust_dns,zstd_thin
    build-commit-hash: 39d8cfc07f2253080ce997e620406c2994dced25
    build-commit-date: 2023-07-18
    rustc-version: 1.71.0
    rustc-commit-hash: 8ede3aae28fe6e4d52b38157d7bfe0d3bceef225
    rustc-llvm-version: 16.0
    
  • feat: Read --rate-limit from env BINSTALL_RATE_LIMIT as a fallback (#1196 #1201)

  • Support --registry and more options from .cargo/config.toml (#885 #1195)
    Now we can take advantage of new argument --registry and
    env overrides:

    • CARGO_REGISTRIES_DEFAULT if --registry is not specified
    • CARGO_REGISTRIES_{registry_name}_INDEX for the registry index url

    We can also read from .cargo/config.toml for:

    • default registry and registries configurations
    • additional CA bundle http.cainfo
  • feat: Support --index (#1168 #1184)

Optimization

  • Use reflink_copy to speedup binary installation if atomic rename failed

  • speedup git shallow cloning: Enable gix/max-performance (#1186)
    for targets:

    • x86_64-apple-darwin
    • aarch64-apple-darwin
    • x86_64-unknown-linux-gnu
    • x86_64-unknown-linux-musl

    which will use zlib-ng to speedup decompression and use assembly
    version for sha1 checksum calculation on supported CPU.

    Also enable feature zlib-ng on windows and

    • aarch64-unknown-linux-gnu
    • aarch64-unknown-linux-musl
  • Speedup prebuilt binary (#1188)

    This commit speeds it up by building all dependencies with -O3 in dev
    and release build, in release build we build everything with -O3.

Bugfix

  • Fix binstalk_downloader::GhApiClient json deser error (#1193)
    When installing cargo-expand v1.0.59, I got an error message:

    Failed to parse http response body as Json: invalid type: null, expected a string at line
    1 column 90
    
  • Fix GPL-3.0 license identifier (#1189 #1192)

v1.0.0

27 Jun 04:32
f231f93
Compare
Choose a tag to compare

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.

We're very happy to announce this 1.0 release! 🎉
[Reddit] [Bluesky] [Twitter] [Masto]

In this release:

  • Support install directly from git repository using --git (#3 #1162)
  • Add new option --no-track to not update manifests when installing (#1111)
  • Add fallback targets to windows (#642 #650)
    • We attempt to detect if some targets other than the native/host one are runnable on your system and make those eligible for being downloaded if matching builds are available (and builds for the host target are not).
    • The fallback logic is a bit convoluted to explain in one sentence, but essentially: x86 builds on x64 hosts, ARM32 builds on (some) ARM64 hosts, x86/x64 builds on (some) ARM64 hosts.
  • Show license and source in long help (#1149)
    • A reminder that Binstall and the binstalk library are GPL!

Other changes:

  • GhApiClient: Fallback to unauthorized mode if auth token is invalid (#850 #1121)
  • Use GraphQL API if GitHub token is provided (#868 #1124)
  • Add more variables for you to use in templates (#775 #1160):
    • target-family (e.g. windows, linux)
    • target-arch (e.g. x86_64, aarch64)
    • target-libc (e.g. gnu, musl)
    • target-vendor (e.g. apple, unknown)

v0.23.1

27 May 02:05
62ca508
Compare
Choose a tag to compare

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:

  • Fixed yanked dependencies error (#1019 #1028 #1040 #1085)
  • Add one-liner for installing cargo-binstall on Linux/MacOS (#1073 #1074)
  • Optimize fetching from https://crates.io when user requested a specific version instead of a range (#1089)
  • Change binstalk-downloader license to "Apache-2.0 OR MIT" (#542)

v0.23.0

26 Apr 11:18
2103fde
Compare
Choose a tag to compare

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:

  • Support (some) crates which specify a subdirectory in their repository path (with GitHub and GitLab hosts). This also makes available a new subcrate variable in the pkg-url template. (#838 #991)
  • Template engine changes from tiny-template to leon, a new crate from this very project! There's no outward changes here, except that template parsing and rendering is a lot faster.

Other changes:

  • Pretty print $CARGO_HOME/.crates.toml manifest to match cargo behaviour. If you check that file in or like to manually review it, that will help. (#970 #984)
  • Support GitHub fine-grained personal access tokens. (#957)
  • Only check for extension .exe in pkg-url if target is Windows. (#851 #933)
  • We now detect malformed pkg-url/pkg-fmt templates earlier. (#851 #933)