blob: 79823ee93bc121436fd66447fedb56e5d96c61c4 [file] [log] [blame] [view]
# Specifying Policies
By default, `cargo vet` checks all transitive dependencies of all top-level
crates against the following criteria on all-platforms:
* For regular dependencies: `safe-to-deploy`
* For dev-dependencies: `safe-to-run`
* For build-dependencies[^1]: `safe-to-deploy`
In some situations, you may be able to reduce your workload by encoding your
requirements more precisely. For example, your workspace might contain both a
production product and an internal tool, and you might decide that the
dependencies of the latter need only be `safe-to-run`.
If the default behavior works for you, there's no need to specify anything. If
you wish to encode policies such as the above, you can do so in
[config.toml](config.md#the-policy-table).
## Footnotes
[^1]: Strictly speaking, we want the build-dependencies themselves to be `safe-to-run`
and their contribution to the build (e.g., generated code) to be safe-to-deploy.
Rather than introduce separate criteria to handle this nuance explicitly,
cargo-vet bundles it into the [definition](built-in-criteria.md#safe-to-deploy)
of `safe-to-deploy`. This keeps things more simple and intuitive without
sacrificing much precision, since in practice it's generally quite clear whether
a crate is intended to operate at build time or at run time.