• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This template contains all of the possible sections and their default values
2
3# Note that all fields that take a lint level have these possible values:
4# * deny - An error will be produced and the check will fail
5# * warn - A warning will be produced, but the check will not fail
6# * allow - No warning or error will be produced, though in some cases a note
7# will be
8
9# The values provided in this template are the default values that will be used
10# when any section or field is not specified in your own configuration
11
12# Root options
13
14# The graph table configures how the dependency graph is constructed and thus
15# which crates the checks are performed against
16[graph]
17# If 1 or more target triples (and optionally, target_features) are specified,
18# only the specified targets will be checked when running `cargo deny check`.
19# This means, if a particular package is only ever used as a target specific
20# dependency, such as, for example, the `nix` crate only being used via the
21# `target_family = "unix"` configuration, that only having windows targets in
22# this list would mean the nix crate, as well as any of its exclusive
23# dependencies not shared by any other crates, would be ignored, as the target
24# list here is effectively saying which targets you are building for.
25targets = [
26    # The triple can be any string, but only the target triples built in to
27    # rustc (as of 1.40) can be checked against actual config expressions
28    #"x86_64-unknown-linux-musl",
29    # You can also specify which target_features you promise are enabled for a
30    # particular target. target_features are currently not validated against
31    # the actual valid features supported by the target architecture.
32    #{ triple = "wasm32-unknown-unknown", features = ["atomics"] },
33    "aarch64-linux-android",
34    "armv7-linux-androideabi",
35    "i686-linux-android",
36    "i686-unknown-linux-gnu",
37    "riscv64-linux-android",
38    "x86_64-linux-android",
39    "x86_64-unknown-linux-gnu",
40]
41# When creating the dependency graph used as the source of truth when checks are
42# executed, this field can be used to prune crates from the graph, removing them
43# from the view of cargo-deny. This is an extremely heavy hammer, as if a crate
44# is pruned from the graph, all of its dependencies will also be pruned unless
45# they are connected to another crate in the graph that hasn't been pruned,
46# so it should be used with care. The identifiers are [Package ID Specifications]
47# (https://doc.rust-lang.org/cargo/reference/pkgid-spec.html)
48#exclude = []
49# If true, metadata will be collected with `--all-features`. Note that this can't
50# be toggled off if true, if you want to conditionally enable `--all-features` it
51# is recommended to pass `--all-features` on the cmd line instead
52all-features = false
53# If true, metadata will be collected with `--no-default-features`. The same
54# caveat with `all-features` applies
55no-default-features = false
56# If set, these feature will be enabled when collecting metadata. If `--features`
57# is specified on the cmd line they will take precedence over this option.
58#features = []
59
60# The output table provides options for how/if diagnostics are outputted
61[output]
62# When outputting inclusion graphs in diagnostics that include features, this
63# option can be used to specify the depth at which feature edges will be added.
64# This option is included since the graphs can be quite large and the addition
65# of features from the crate(s) to all of the graph roots can be far too verbose.
66# This option can be overridden via `--feature-depth` on the cmd line
67feature-depth = 1
68
69# This section is considered when running `cargo deny check advisories`
70# More documentation for the advisories section can be found here:
71# https://embarkstudios.github.io/cargo-deny/checks/advisories/cfg.html
72[advisories]
73# The path where the advisory databases are cloned/fetched into
74db-path = "$CARGO_HOME/advisory-dbs"
75# The url(s) of the advisory databases to use
76db-urls = ["https://github.com/rustsec/advisory-db"]
77# A list of advisory IDs to ignore. Note that ignored advisories will still
78# output a note when they are encountered.
79ignore = [
80    #"RUSTSEC-0000-0000",
81    #{ id = "RUSTSEC-0000-0000", reason = "you can specify a reason the advisory is ignored" },
82    #"a-crate-that-is-yanked@0.1.1", # you can also ignore yanked crate versions if you wish
83    #{ crate = "a-crate-that-is-yanked@0.1.1", reason = "you can specify why you are ignoring the yanked crate" },
84]
85# If this is true, then cargo deny will use the git executable to fetch advisory database.
86# If this is false, then it uses a built-in git library.
87# Setting this to true can be helpful if you have special authentication requirements that cargo-deny does not support.
88# See Git Authentication for more information about setting up git authentication.
89#git-fetch-with-cli = true
90
91# This section is considered when running `cargo deny check licenses`
92# More documentation for the licenses section can be found here:
93# https://embarkstudios.github.io/cargo-deny/checks/licenses/cfg.html
94[licenses]
95# List of explicitly allowed licenses
96# See https://spdx.org/licenses/ for list of possible licenses
97# [possible values: any SPDX 3.11 short identifier (+ optional exception)].
98allow = [
99    "0BSD",
100    "Apache-2.0",
101    "Apache-2.0 WITH LLVM-exception",
102    "BSD-2-Clause",
103    "BSD-3-Clause",
104    "CC0-1.0",
105    "ISC",
106    "MIT",
107    "MPL-2.0",
108    "OpenSSL",
109    "Unicode-3.0",
110    "Unicode-DFS-2016",
111    "Zlib",
112    #"MIT",
113    #"Apache-2.0",
114    #"Apache-2.0 WITH LLVM-exception",
115]
116# The confidence threshold for detecting a license from license text.
117# The higher the value, the more closely the license text must be to the
118# canonical license text of a valid SPDX license file.
119# [possible values: any between 0.0 and 1.0].
120confidence-threshold = 0.8
121# Allow 1 or more licenses on a per-crate basis, so that particular licenses
122# aren't accepted for every possible crate as with the normal allow list
123exceptions = [
124    # Each entry is the crate and version constraint, and its specific allow
125    # list
126    #{ allow = ["Zlib"], crate = "adler32" },
127]
128
129# Some crates don't have (easily) machine readable licensing information,
130# adding a clarification entry for it allows you to manually specify the
131# licensing information
132[[licenses.clarify]]
133# The package spec the clarification applies to
134crate = "ring"
135# The SPDX expression for the license requirements of the crate
136expression = "MIT AND ISC AND OpenSSL"
137# One or more files in the crate's source used as the "source of truth" for
138# the license expression. If the contents match, the clarification will be used
139# when running the license check, otherwise the clarification will be ignored
140# and the crate will be checked normally, which may produce warnings or errors
141# depending on the rest of your configuration
142license-files = [
143# Each entry is a crate relative path, and the (opaque) hash of its contents
144{ path = "LICENSE", hash = 0xbd0eed23 }
145]
146
147[licenses.private]
148# If true, ignores workspace crates that aren't published, or are only
149# published to private registries.
150# To see how to mark a crate as unpublished (to the official registry),
151# visit https://doc.rust-lang.org/cargo/reference/manifest.html#the-publish-field.
152ignore = false
153# One or more private registries that you might publish crates to, if a crate
154# is only published to private registries, and ignore is true, the crate will
155# not have its license(s) checked
156registries = [
157    #"https://sekretz.com/registry
158]
159
160# This section is considered when running `cargo deny check bans`.
161# More documentation about the 'bans' section can be found here:
162# https://embarkstudios.github.io/cargo-deny/checks/bans/cfg.html
163[bans]
164# Lint level for when multiple versions of the same crate are detected
165multiple-versions = "allow"
166# Lint level for when a crate version requirement is `*`
167wildcards = "allow"
168# The graph highlighting used when creating dotgraphs for crates
169# with multiple versions
170# * lowest-version - The path to the lowest versioned duplicate is highlighted
171# * simplest-path - The path to the version with the fewest edges is highlighted
172# * all - Both lowest-version and simplest-path are used
173highlight = "all"
174# The default lint level for `default` features for crates that are members of
175# the workspace that is being checked. This can be overridden by allowing/denying
176# `default` on a crate-by-crate basis if desired.
177workspace-default-features = "allow"
178# The default lint level for `default` features for external crates that are not
179# members of the workspace. This can be overridden by allowing/denying `default`
180# on a crate-by-crate basis if desired.
181external-default-features = "allow"
182# List of crates that are allowed. Use with care!
183allow = [
184    #"ansi_term@0.11.0",
185    #{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is allowed" },
186]
187# List of crates to deny
188deny = [
189    #"ansi_term@0.11.0",
190    #{ crate = "ansi_term@0.11.0", reason = "you can specify a reason it is banned" },
191    # Wrapper crates can optionally be specified to allow the crate when it
192    # is a direct dependency of the otherwise banned crate
193    #{ crate = "ansi_term@0.11.0", wrappers = ["this-crate-directly-depends-on-ansi_term"] },
194]
195
196# List of features to allow/deny
197# Each entry the name of a crate and a version range. If version is
198# not specified, all versions will be matched.
199#[[bans.features]]
200#crate = "reqwest"
201# Features to not allow
202#deny = ["json"]
203# Features to allow
204#allow = [
205#    "rustls",
206#    "__rustls",
207#    "__tls",
208#    "hyper-rustls",
209#    "rustls",
210#    "rustls-pemfile",
211#    "rustls-tls-webpki-roots",
212#    "tokio-rustls",
213#    "webpki-roots",
214#]
215# If true, the allowed features must exactly match the enabled feature set. If
216# this is set there is no point setting `deny`
217#exact = true
218
219# Certain crates/versions that will be skipped when doing duplicate detection.
220skip = [
221    #"ansi_term@0.11.0",
222    #{ crate = "ansi_term@0.11.0", reason = "you can specify a reason why it can't be updated/removed" },
223]
224# Similarly to `skip` allows you to skip certain crates during duplicate
225# detection. Unlike skip, it also includes the entire tree of transitive
226# dependencies starting at the specified crate, up to a certain depth, which is
227# by default infinite.
228skip-tree = [
229    #"ansi_term@0.11.0", # will be skipped along with _all_ of its direct and transitive dependencies
230    #{ crate = "ansi_term@0.11.0", depth = 20 },
231]
232
233# This section is considered when running `cargo deny check sources`.
234# More documentation about the 'sources' section can be found here:
235# https://embarkstudios.github.io/cargo-deny/checks/sources/cfg.html
236[sources]
237# Lint level for what to happen when a crate from a crate registry that is not
238# in the allow list is encountered
239unknown-registry = "warn"
240# Lint level for what to happen when a crate from a git repository that is not
241# in the allow list is encountered
242unknown-git = "warn"
243# List of URLs for allowed crate registries. Defaults to the crates.io index
244# if not specified. If it is specified but empty, no registries are allowed.
245allow-registry = ["https://github.com/rust-lang/crates.io-index"]
246# List of URLs for allowed Git repositories
247allow-git = []
248
249[sources.allow-org]
250# github.com organizations to allow git sources for
251github = []
252# gitlab.com organizations to allow git sources for
253gitlab = []
254# bitbucket.org organizations to allow git sources for
255bitbucket = []
256