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 dependencies
workspace_members
Package IDs of workspace members
workspace_root
Absolute path to workspace root
target_directory
Path to build output directory
resolve
Dependency resolution graph
version
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)

RESOURCES

Source code · Documentation