[−][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 theproptest
framework.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 |