| <h2 id="cargo_metadata_name">NAME</h2> |
| <div class="sectionbody"> |
| <p>cargo-metadata - Machine-readable metadata about the current package</p> |
| </div> |
| <div class="sect1"> |
| <h2 id="cargo_metadata_synopsis">SYNOPSIS</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p><code>cargo metadata [<em>OPTIONS</em>]</code></p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="cargo_metadata_description">DESCRIPTION</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>Output the resolved dependencies of a package, the concrete used versions |
| including overrides, in JSON to stdout.</p> |
| </div> |
| <div class="paragraph"> |
| <p>It is recommended to include the <code>--format-version</code> flag to future-proof |
| your code to ensure the output is in the format you are expecting.</p> |
| </div> |
| <div class="paragraph"> |
| <p>See the <a href="https://crates.io/crates/cargo_metadata">cargo_metadata crate</a> |
| for a Rust API for reading the metadata.</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="cargo_metadata_output_format">OUTPUT FORMAT</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>The output has the following format:</p> |
| </div> |
| <div class="listingblock"> |
| <div class="content"> |
| <pre class="highlightjs highlight"><code class="language-javascript hljs" data-lang="javascript">{ |
| /* Array of all packages in the workspace. |
| It also includes all feature-enabled dependencies unless --no-deps is used. |
| */ |
| "packages": [ |
| { |
| /* The name of the package. */ |
| "name": "my-package", |
| /* The version of the package. */ |
| "version": "0.1.0", |
| /* The Package ID, a unique identifier for referring to the package. */ |
| "id": "my-package 0.1.0 (path+file:///path/to/my-package)", |
| /* The license value from the manifest, or null. */ |
| "license": "MIT/Apache-2.0", |
| /* The license-file value from the manifest, or null. */ |
| "license_file": "LICENSE", |
| /* The description value from the manifest, or null. */ |
| "description": "Package description.", |
| /* The source ID of the package. This represents where |
| a package is retrieved from. |
| This is null for path dependencies and workspace members. |
| For other dependencies, it is a string with the format: |
| - "registry+URL" for registry-based dependencies. |
| Example: "registry+https://github.com/rust-lang/crates.io-index" |
| - "git+URL" for git-based dependencies. |
| Example: "git+https://github.com/rust-lang/cargo?rev=5e85ba14aaa20f8133863373404cb0af69eeef2c#5e85ba14aaa20f8133863373404cb0af69eeef2c" |
| */ |
| "source": null, |
| /* Array of dependencies declared in the package's manifest. */ |
| "dependencies": [ |
| { |
| /* The name of the dependency. */ |
| "name": "bitflags", |
| /* The source ID of the dependency. May be null, see |
| description for the package source. |
| */ |
| "source": "registry+https://github.com/rust-lang/crates.io-index", |
| /* The version requirement for the dependency. |
| Dependencies without a version requirement have a value of "*". |
| */ |
| "req": "^1.0", |
| /* The dependency kind. |
| "dev", "build", or null for a normal dependency. |
| */ |
| "kind": null, |
| /* If the dependency is renamed, this is the new name for |
| the dependency as a string. null if it is not renamed. |
| */ |
| "rename": null, |
| /* Boolean of whether or not this is an optional dependency. */ |
| "optional": false, |
| /* Boolean of whether or not default features are enabled. */ |
| "uses_default_features": true, |
| /* Array of features enabled. */ |
| "features": [], |
| /* The target platform for the dependency. |
| null if not a target dependency. |
| */ |
| "target": "cfg(windows)", |
| /* A string of the URL of the registry this dependency is from. |
| If not specified or null, the dependency is from the default |
| registry (crates.io). |
| */ |
| "registry": null |
| } |
| ], |
| /* Array of Cargo targets. */ |
| "targets": [ |
| { |
| /* Array of target kinds. |
| - lib targets list the `crate-type` values from the |
| manifest such as "lib", "rlib", "dylib", |
| "proc-macro", etc. (default ["lib"]) |
| - binary is ["bin"] |
| - example is ["example"] |
| - integration test is ["test"] |
| - benchmark is ["bench"] |
| - build script is ["custom-build"] |
| */ |
| "kind": [ |
| "bin" |
| ], |
| /* Array of crate types. |
| - lib and example libraries list the `crate-type` values |
| from the manifest such as "lib", "rlib", "dylib", |
| "proc-macro", etc. (default ["lib"]) |
| - all other target kinds are ["bin"] |
| */ |
| "crate_types": [ |
| "bin" |
| ], |
| /* The name of the target. */ |
| "name": "my-package", |
| /* Absolute path to the root source file of the target. */ |
| "src_path": "/path/to/my-package/src/main.rs", |
| /* The Rust edition of the target. |
| Defaults to the package edition. |
| */ |
| "edition": "2018", |
| /* Array of required features. |
| This property is not included if no required features are set. |
| */ |
| "required-features": ["feat1"] |
| } |
| ], |
| /* Set of features defined for the package. |
| Each feature maps to an array of features or dependencies it |
| enables. |
| */ |
| "features": { |
| "default": [ |
| "feat1" |
| ], |
| "feat1": [], |
| "feat2": [] |
| }, |
| /* Absolute path to this package's manifest. */ |
| "manifest_path": "/path/to/my-package/Cargo.toml", |
| /* Package metadata. |
| This is null if no metadata is specified. |
| */ |
| "metadata": { |
| "docs": { |
| "rs": { |
| "all-features": true |
| } |
| } |
| }, |
| /* Array of authors from the manifest. |
| Empty array if no authors specified. |
| */ |
| "authors": [ |
| "Jane Doe <user@example.com>" |
| ], |
| /* Array of categories from the manifest. */ |
| "categories": [ |
| "command-line-utilities" |
| ], |
| /* Array of keywords from the manifest. */ |
| "keywords": [ |
| "cli" |
| ], |
| /* The readme value from the manifest or null if not specified. */ |
| "readme": "README.md", |
| /* The repository value from the manifest or null if not specified. */ |
| "repository": "https://github.com/rust-lang/cargo", |
| /* The default edition of the package. |
| Note that individual targets may have different editions. |
| */ |
| "edition": "2018", |
| /* Optional string that is the name of a native library the package |
| is linking to. |
| */ |
| "links": null, |
| } |
| ], |
| /* Array of members of the workspace. |
| Each entry is the Package ID for the package. |
| */ |
| "workspace_members": [ |
| "my-package 0.1.0 (path+file:///path/to/my-package)", |
| ], |
| /* The resolved dependency graph, with the concrete versions and features |
| selected. The set depends on the enabled features. |
| This is null if --no-deps is specified. |
| */ |
| "resolve": { |
| /* Array of nodes within the dependency graph. |
| Each node is a package. |
| */ |
| "nodes": [ |
| { |
| /* The Package ID of this node. */ |
| "id": "my-package 0.1.0 (path+file:///path/to/my-package)", |
| /* The dependencies of this package, an array of Package IDs. */ |
| "dependencies": [ |
| "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" |
| ], |
| /* The dependencies of this package. This is an alternative to |
| "dependencies" which contains additional information. In |
| particular, this handles renamed dependencies. |
| */ |
| "deps": [ |
| { |
| /* The name of the dependency's library target. |
| If this is a renamed dependency, this is the new |
| name. |
| */ |
| "name": "bitflags", |
| /* The Package ID of the dependency. */ |
| "pkg": "bitflags 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" |
| } |
| ], |
| /* Array of features enabled on this package. */ |
| "features": [ |
| "default" |
| ] |
| } |
| ], |
| /* The root package of the workspace. |
| This is null if this is a virtual workspace. Otherwise it is |
| the Package ID of the root package. |
| */ |
| "root": "my-package 0.1.0 (path+file:///path/to/my-package)" |
| }, |
| /* The absolute path to the build directory where Cargo places its output. */ |
| "target_directory": "/path/to/my-package/target", |
| /* The version of the schema for this metadata structure. |
| This will be changed if incompatible changes are ever made. |
| */ |
| "version": 1, |
| /* The absolute path to the root of the workspace. */ |
| "workspace_root": "/path/to/my-package" |
| }</code></pre> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="cargo_metadata_options">OPTIONS</h2> |
| <div class="sectionbody"> |
| <div class="sect2"> |
| <h3 id="cargo_metadata_output_options">Output Options</h3> |
| <div class="dlist"> |
| <dl> |
| <dt class="hdlist1"><strong>--no-deps</strong></dt> |
| <dd> |
| <p>Output information only about the workspace members and don’t fetch |
| dependencies.</p> |
| </dd> |
| <dt class="hdlist1"><strong>--format-version</strong> <em>VERSION</em></dt> |
| <dd> |
| <p>Specify the version of the output format to use. Currently <code>1</code> is the only |
| possible value.</p> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="cargo_metadata_feature_selection">Feature Selection</h3> |
| <div class="paragraph"> |
| <p>When no feature options are given, the <code>default</code> feature is activated for |
| every selected package.</p> |
| </div> |
| <div class="dlist"> |
| <dl> |
| <dt class="hdlist1"><strong>--features</strong> <em>FEATURES</em></dt> |
| <dd> |
| <p>Space or comma separated list of features to activate. These features only |
| apply to the current directory’s package. Features of direct dependencies |
| may be enabled with <code><dep-name>/<feature-name></code> syntax.</p> |
| </dd> |
| <dt class="hdlist1"><strong>--all-features</strong></dt> |
| <dd> |
| <p>Activate all available features of all selected packages.</p> |
| </dd> |
| <dt class="hdlist1"><strong>--no-default-features</strong></dt> |
| <dd> |
| <p>Do not activate the <code>default</code> feature of the current directory’s |
| package.</p> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="cargo_metadata_display_options">Display Options</h3> |
| <div class="dlist"> |
| <dl> |
| <dt class="hdlist1"><strong>-v</strong></dt> |
| <dt class="hdlist1"><strong>--verbose</strong></dt> |
| <dd> |
| <p>Use verbose output. May be specified twice for "very verbose" output which |
| includes extra output such as dependency warnings and build script output. |
| May also be specified with the <code>term.verbose</code> |
| <a href="reference/config.html">config value</a>.</p> |
| </dd> |
| <dt class="hdlist1"><strong>-q</strong></dt> |
| <dt class="hdlist1"><strong>--quiet</strong></dt> |
| <dd> |
| <p>No output printed to stdout.</p> |
| </dd> |
| <dt class="hdlist1"><strong>--color</strong> <em>WHEN</em></dt> |
| <dd> |
| <p>Control when colored output is used. Valid values:</p> |
| <div class="ulist"> |
| <ul> |
| <li> |
| <p><code>auto</code> (default): Automatically detect if color support is available on the |
| terminal.</p> |
| </li> |
| <li> |
| <p><code>always</code>: Always display colors.</p> |
| </li> |
| <li> |
| <p><code>never</code>: Never display colors.</p> |
| </li> |
| </ul> |
| </div> |
| <div class="paragraph"> |
| <p>May also be specified with the <code>term.color</code> |
| <a href="reference/config.html">config value</a>.</p> |
| </div> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="cargo_metadata_manifest_options">Manifest Options</h3> |
| <div class="dlist"> |
| <dl> |
| <dt class="hdlist1"><strong>--manifest-path</strong> <em>PATH</em></dt> |
| <dd> |
| <p>Path to the <code>Cargo.toml</code> file. By default, Cargo searches in the current |
| directory or any parent directory for the <code>Cargo.toml</code> file.</p> |
| </dd> |
| <dt class="hdlist1"><strong>--frozen</strong></dt> |
| <dt class="hdlist1"><strong>--locked</strong></dt> |
| <dd> |
| <p>Either of these flags requires that the <code>Cargo.lock</code> file is |
| up-to-date. If the lock file is missing, or it needs to be updated, Cargo will |
| exit with an error. The <code>--frozen</code> flag also prevents Cargo from |
| attempting to access the network to determine if it is out-of-date.</p> |
| <div class="paragraph"> |
| <p>These may be used in environments where you want to assert that the |
| <code>Cargo.lock</code> file is up-to-date (such as a CI build) or want to avoid network |
| access.</p> |
| </div> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| <div class="sect2"> |
| <h3 id="cargo_metadata_common_options">Common Options</h3> |
| <div class="dlist"> |
| <dl> |
| <dt class="hdlist1"><strong>-h</strong></dt> |
| <dt class="hdlist1"><strong>--help</strong></dt> |
| <dd> |
| <p>Prints help information.</p> |
| </dd> |
| <dt class="hdlist1"><strong>-Z</strong> <em>FLAG</em>…​</dt> |
| <dd> |
| <p>Unstable (nightly-only) flags to Cargo. Run <code>cargo -Z help</code> for |
| details.</p> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="cargo_metadata_environment">ENVIRONMENT</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p>See <a href="reference/environment-variables.html">the reference</a> for |
| details on environment variables that Cargo reads.</p> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="cargo_metadata_exit_status">Exit Status</h2> |
| <div class="sectionbody"> |
| <div class="dlist"> |
| <dl> |
| <dt class="hdlist1">0</dt> |
| <dd> |
| <p>Cargo succeeded.</p> |
| </dd> |
| <dt class="hdlist1">101</dt> |
| <dd> |
| <p>Cargo failed to complete.</p> |
| </dd> |
| </dl> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="cargo_metadata_examples">EXAMPLES</h2> |
| <div class="sectionbody"> |
| <div class="olist arabic"> |
| <ol class="arabic"> |
| <li> |
| <p>Output JSON about the current package:</p> |
| <div class="literalblock"> |
| <div class="content"> |
| <pre>cargo metadata --format-version=1</pre> |
| </div> |
| </div> |
| </li> |
| </ol> |
| </div> |
| </div> |
| </div> |
| <div class="sect1"> |
| <h2 id="cargo_metadata_see_also">SEE ALSO</h2> |
| <div class="sectionbody"> |
| <div class="paragraph"> |
| <p><a href="commands/index.html">cargo(1)</a></p> |
| </div> |
| </div> |
| </div> |