[−][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.
Optional features
proptest010: Support for property-based testing using theproptestframework.rayon1: Support for parallel iterators through Rayon (preliminary work so far, more parallel iterators to be added in the future).summaries: Support for writing out build summaries.
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 |
| graph | Entry point for analyzing Cargo dependency graphs. |
Structs
| CargoMetadata | A deserialized Cargo metadata returned by a |
| MetadataCommand | A builder for configuring |
| 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 |
Traits
| Obs | Trait representing an owned, borrowed or shared instance of |