build(deps): bump the deps group with 2 updates (#2662)
Bumps the deps group with 2 updates: dirs and zstd.
Updates
dirsfrom 6.0.0 to 7.0.0Updates
zstdfrom 0.13.3 to 0.14.0Commits
648acb4Avoid let...else in the seekable callbackse1152c1Bump versions for the next release7caed6eDerive the usual traits on ResetDirectivebf7b1f7Refuse to reuse a context an error may have left undefined1565618Check the target, not the host, for MSVC8315a62Return Ok(0) from Read::read for an empty buffera7cfa93Keep the std gate on the Cursor WriteBuf impl9bf1692Say why the Send and Sync impls hold681bcc3Don't truncate Cursor positions on 32-bit targetsd5a1fddDon't hand out a &mut Seekable from AdvancedSeekable- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don’t alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore <dependency name> major versionwill close this group update PR and stop Dependabot creating any more for the specific dependency’s major version (unless you unignore this specific dependency’s major version or upgrade to it yourself)@dependabot ignore <dependency name> minor versionwill close this group update PR and stop Dependabot creating any more for the specific dependency’s minor version (unless you unignore this specific dependency’s minor version or upgrade to it yourself)@dependabot ignore <dependency name>will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)@dependabot unignore <dependency name>will remove all of the ignore conditions of the specified dependency@dependabot unignore <dependency name> <ignore condition>will remove the ignore condition of the specified dependency and ignore conditionsSigned-off-by: dependabot[bot] support@github.com Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
Cargo B(inary)Install
Binstall provides a low-complexity mechanism for installing Rust binaries as an alternative to building from source (via
cargo install) or manually downloading packages. This is intended to work with existing CI artifacts and infrastructure, and with minimal overhead for package maintainers.Binstall works by fetching the crate information from
crates.ioand searching the linkedrepositoryfor matching releases and artifacts, falling back to the quickinstall third-party artifact host, to alternate targets as supported, and finally tocargo installas a last resort.You may want to see this page as it was when the latest version was published.
Usage
Binstall aims to be a drop-in replacement for
cargo installin many cases, and supports similar options.For unattended use (e.g. in CI), use the
--no-confirmflag. For additional options please seecargo binstall --help.Installation
If you already have it
To upgrade cargo-binstall, use
cargo binstall cargo-binstall!Quickly
Here are one-liners for downloading and installing a pre-compiled
cargo-binstallbinary.Linux and macOS
or if you have homebrew installed:
Windows
Manually
Download the relevant package for your system below, unpack it, and move the
cargo-binstallexecutable into$HOME/.cargo/bin:(both archs)
From source
With a recent Rust installed:
In GitHub Actions
We provide a first-party, minimal action that installs Binstall:
For more features, we recommend the excellent taiki-e/install-action, which has dedicated support for selected tools and uses Binstall for everything else.
Companion tools
These are useful third-party tools which work well with Binstall.
cargo-updateWhile you can upgrade crates explicitly by running
cargo binstallagain,cargo-updatetakes care of updating all tools as needed. It automatically uses Binstall to install the updates if it is present.cargo-run-binBinstall and
cargo installboth install tools globally by default, which is fine for system-wide tools. When installing tooling for a project, however, you may prefer to both scope the tools to that project and control their versions in code. That’s wherecargo-run-bincomes in, with a dedicated section in your Cargo.toml and a short cargo subcommand. When Binstall is available, it installs from binary whenever possible… and you can even manage Binstall itself withcargo-run-bin!Unsupported crates
Binstall is generally smart enough to auto-detect artifacts in most situations. However, if a package fails to install, you can manually specify the
pkg-url,bin-dir, andpkg-fmtas needed at the command line, with values as documented in SUPPORT.md.Maintainers wanting to make their users’ life easier can add explicit Binstall metadata to
Cargo.tomlto locate the appropriate binary package for a given version and target.Signatures
We have initial, limited support for maintainers to specify a signing public key and where to find package signatures. With this enabled, Binstall will download and verify signatures for that package.
You can use
--only-signedto refuse to install packages if they’re not signed.If you like to live dangerously (please don’t use this outside testing), you can use
--skip-signaturesto disable checking or even downloading signatures at all.FAQ
Why use this?
Because
wget-ing releases is frustrating,cargo installtakes a not inconsequential portion of forever on constrained devices, and often putting together actual packages is overkill.Why use the cargo manifest?
Crates already have these, and they already contain a significant portion of the required information. Also, there’s this great and woefully underused (IMO)
[package.metadata]field.Is this secure?
Yes and also no?
We have initial support for verifying signatures, but not a lot of the ecosystem produces signatures at the moment. See #1 to discuss more on this.
We always pull the metadata from crates.io over HTTPS, and verify the checksum of the crate tar. We also enforce using HTTPS with TLS >= 1.2 for the actual download of the package files.
Compared to something like a
curl ... | shscript, we’re not running arbitrary code, but of course the crate you’re downloading a package for might itself be malicious!What do the error codes mean?
You can find a full description of errors including exit codes here: https://docs.rs/binstalk/latest/binstalk/errors/enum.BinstallError.html
Are debug symbols available?
Yes! Extra pre-built packages with a
.fullsuffix are available and contain split debuginfo, documentation files, and extra binaries like thedetect-wasiutility.Telemetry collection
Some crate installation strategies may collect anonymized usage statistics by default. Currently, only the name of the crate to be installed, its version, the target platform triple, and the collecting user agent are sent to endpoints under the
https://cargo-quickinstall-stats-server.fly.dev/record-installURL when thequickinstallartifact host is used. The maintainers of thequickinstallproject use this data to determine which crate versions are most worthwhile to build and host. The aggregated collected telemetry is publicly accessible at https://alsuren.grafana.net/public-dashboards/12d4ec3edf2548a1850a813e00592b53. Should you be interested on it, the backend code for these endpoints can be found at https://github.com/cargo-bins/cargo-quickinstall/tree/main/stats-server.If you prefer not to participate in this data collection, you can opt out by any of the following methods:
--disable-telemetryflag in the command line interface.BINSTALL_DISABLE_TELEMETRYenvironment variable totrue.quickinstallstrategy with--disable-strategies quick-install, or if specifying a list of strategies to use with--strategies, avoiding includingquickinstallin that list.quick-installto thedisabled-strategiesconfiguration key in the crate metadata (refer to the related support documentation for more details).If you have ideas/contributions or anything is not working the way you expect (in which case, please include an output with
--log-level debug) and feel free to open an issue or PR.