cargo-pkgid(1)

NAME

cargo-pkgid --- Print a fully qualified package specification

SYNOPSIS

cargo pkgid [options] [spec]

DESCRIPTION

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.

OPTIONS

Package Selection

Display Options

Manifest Options

Common Options

ENVIRONMENT

See the reference for details on environment variables that Cargo reads.

EXIT STATUS

EXAMPLES

  1. Retrieve package specification for foo package:

    cargo pkgid foo
    
  2. Retrieve package specification for version 1.0.0 of foo:

    cargo pkgid foo@1.0.0
    
  3. Retrieve package specification for foo from crates.io:

    cargo pkgid https://github.com/rust-lang/crates.io-index#foo
    
  4. Retrieve package specification for foo from a local package:

    cargo pkgid file:///path/to/local/package#foo
    

SEE ALSO

cargo(1), cargo-generate-lockfile(1), cargo-metadata(1), Package ID Specifications, JSON messages