cargo-metadata
Output workspace and dependency metadata as JSON
TLDR
Output project metadata
$ cargo metadata
Output with format version$ cargo metadata --format-version 1
Without dependencies$ cargo metadata --no-deps
Filter to specific features$ cargo metadata --features [feature1,feature2]
Pretty print JSON$ cargo metadata --format-version 1 | jq .
SYNOPSIS
cargo metadata [options]
DESCRIPTION
cargo metadata outputs JSON to stdout containing information about workspace members, resolved dependencies, and build configuration. Useful for tooling and IDE integration.
PARAMETERS
--format-version version
Schema version (use 1 for stability)--no-deps
Skip dependency resolution (faster, workspace only)--features features
Enable specified features--all-features
Enable all features--no-default-features
Disable default features--filter-platform triple
Filter to specified platform--manifest-path path
Path to Cargo.toml-v, --verbose
Verbose output-q, --quiet
Suppress log messages
OUTPUT FIELDS
packages
Array of all packages and dependenciesworkspace_members
Package IDs of workspace membersworkspace_root
Absolute path to workspace roottarget_directory
Path to build output directoryresolve
Dependency resolution graphversion
Schema version number
INSTALL
sudo apt install cargo
sudo dnf install cargo
sudo apk add cargo
sudo zypper install cargo
nix profile install nixpkgs#cargo
CAVEATS
Output format may change between Cargo versions. Always use --format-version for scripts. The cargo_metadata crate provides Rust parsing.
SEE ALSO
cargo(1), cargo-locate-project(1)
