[][src]Crate guppy

Track and query Cargo dependency graphs.

guppy provides a Rust interface to run queries over Cargo dependency graphs. guppy parses the output of cargo metadata, then presents a graph interface over it.

Usage

Add the following to Cargo.toml:

[dependencies]
guppy = "0.5"

Optional features

Examples

Print out all direct dependencies of a package:

use guppy::{CargoMetadata, PackageId};

// `guppy` accepts `cargo metadata` JSON output. Use a pre-existing fixture for these examples.
let metadata = CargoMetadata::parse_json(include_str!("../../fixtures/small/metadata1.json")).unwrap();
let package_graph = metadata.build_graph().unwrap();

// `guppy` provides several ways to get hold of package IDs. Use a pre-defined one for this
// example.
let package_id = PackageId::new("testcrate 0.1.0 (path+file:///fakepath/testcrate)");

// The `metadata` method returns information about the package, or `None` if the package ID
// wasn't recognized.
let package = package_graph.metadata(&package_id).unwrap();

// `direct_links` returns all direct dependencies of a package.
for link in package.direct_links() {
    // A dependency link contains `from()`, `to()` and information about the specifics of the
    // dependency.
    println!("direct dependency: {}", link.to().id());
}

For more examples, see the examples directory.

Re-exports

pub use errors::Error;
pub use semver::Version;
pub use serde_json::Value as JsonValue;

Modules

errors

Contains types that describe errors and warnings that guppy methods can return.

graph

Entry point for analyzing Cargo dependency graphs.

Structs

CargoMetadata

A deserialized Cargo metadata returned by a MetadataCommand.

MetadataCommand

A builder for configuring cargo metadata invocations.

PackageId

An "opaque" identifier for a package.

Platform

A platform to evaluate target specs against.

Enums

DependencyKind

A descriptor for the kind of dependency.

TargetFeatures

A set of target features to match.

TargetSpecError

An error that happened during target-spec parsing or evaluation.

Traits

Obs

Trait representing an owned, borrowed or shared instance of T.