This repository contains the source code for:
guppy: a library for performing queries on Cargo dependency graphs
libraries used by guppy:
guppy-summaries: a library for managing build summaries listing packages and features target-spec: an evaluator for Cargo.toml target specifications integrations for target-spec:
target-spec-miette: allows converting target-spec errors to miette diagnostics tools built on top of guppy:
determinator: figure out what packages changed between two revisions cargo-hakari: a command-line tool to manage workspace-hack packages hakari cargo-guppy: an experimental command-line frontend for guppy and a number of internal tools and test fixtures used to verify that guppy behaves correctly.
guppy and cargo-guppy can be used to solve many practical problems related to dependency graphs in large Rust
codebases. Some examples -- all of these are available through the guppy library, and will eventually be supported in
the cargo-guppy CLI as well:
dot graph for a subset of crates, for formatting with graphvizStill to come:
The core guppy code in this repository is considered mostly complete and the API is mostly stable.
guppy's simulation of Cargo builds is extensively tested against upstream Cargo, and there are no known differences.
Comparison testing has found a number of bugs in upstream Cargo, for example:
guppy is written on top of the excellent petgraph library. It is a separate
codebase from cargo, depending only on the stable cargo metadata format. (Some other tools in this space like
cargo-tree use cargo internals directly.)
The minimum supported Rust version (MSRV) is Rust 1.91.
While a crate is pre-release status (0.x.x) it may have its MSRV bumped in a patch release. Once a crate has reached 1.x, any MSRV bump will be accompanied with a new minor version.
At any given time, at least the last 3 versions of Rust will be supported. For target-spec, at least
the last 6 months of stable Rust releases will be supported.
See the CONTRIBUTING file for how to help out.
This project is available under the terms of either the Apache 2.0 license or the MIT license.
Rust
99.8%
This repository contains the source code for:
guppy: a library for performing queries on Cargo dependency graphs
libraries used by guppy:
guppy-summaries: a library for managing build summaries listing packages and features target-spec: an evaluator for Cargo.toml target specifications integrations for target-spec:
target-spec-miette: allows converting target-spec errors to miette diagnostics tools built on top of guppy:
determinator: figure out what packages changed between two revisions cargo-hakari: a command-line tool to manage workspace-hack packages hakari cargo-guppy: an experimental command-line frontend for guppy and a number of internal tools and test fixtures used to verify that guppy behaves correctly.
guppy and cargo-guppy can be used to solve many practical problems related to dependency graphs in large Rust
codebases. Some examples -- all of these are available through the guppy library, and will eventually be supported in
the cargo-guppy CLI as well:
dot graph for a subset of crates, for formatting with graphvizStill to come:
The core guppy code in this repository is considered mostly complete and the API is mostly stable.
guppy's simulation of Cargo builds is extensively tested against upstream Cargo, and there are no known differences.
Comparison testing has found a number of bugs in upstream Cargo, for example:
guppy is written on top of the excellent petgraph library. It is a separate
codebase from cargo, depending only on the stable cargo metadata format. (Some other tools in this space like
cargo-tree use cargo internals directly.)
The minimum supported Rust version (MSRV) is Rust 1.91.
While a crate is pre-release status (0.x.x) it may have its MSRV bumped in a patch release. Once a crate has reached 1.x, any MSRV bump will be accompanied with a new minor version.
At any given time, at least the last 3 versions of Rust will be supported. For target-spec, at least
the last 6 months of stable Rust releases will be supported.
See the CONTRIBUTING file for how to help out.
This project is available under the terms of either the Apache 2.0 license or the MIT license.
Rust
99.8%