cargo-pkgid --- Print a fully qualified package specification
cargo pkgid
[options] [spec]
Given a spec argument, print out the fully qualified package ID specifier for a package or dependency in the current workspace. This command will generate an error if spec is ambiguous as to which package it refers to in the dependency graph. If no spec is given, then the specifier for the local package is printed.
This command requires that a lockfile is available and dependencies have been fetched.
A package specifier consists of a name, version, and source URL. You are allowed to use partial specifiers to succinctly match a specific package as long as it matches only one package. This specifier is also used by other parts in Cargo, such as cargo-metadata(1) and JSON messages emitted by Cargo.
The format of a spec can be one of the following:
SPEC Structure | Example SPEC |
---|---|
name | bitflags |
name@ version | bitflags@1.0.4 |
url | https://github.com/rust-lang/cargo |
url# version | https://github.com/rust-lang/cargo#0.33.0 |
url# name | https://github.com/rust-lang/crates.io-index#bitflags |
url# name@ version | https://github.com/rust-lang/cargo#crates-io@0.21.0 |
The specification grammar can be found in chapter Package ID Specifications.
See the reference for details on environment variables that Cargo reads.
0
: Cargo succeeded.101
: Cargo failed to complete.Retrieve package specification for foo
package:
cargo pkgid foo
Retrieve package specification for version 1.0.0 of foo
:
cargo pkgid foo@1.0.0
Retrieve package specification for foo
from crates.io:
cargo pkgid https://github.com/rust-lang/crates.io-index#foo
Retrieve package specification for foo
from a local package:
cargo pkgid file:///path/to/local/package#foo
cargo(1), cargo-generate-lockfile(1), cargo-metadata(1), Package ID Specifications, JSON messages