1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Configuration for cargo-deny
# https://embarkstudios.github.io/cargo-deny/
[]
# Disable checking for unused dependencies since we're in active development
= true
[]
# Database of known security vulnerabilities
= "~/.cargo/advisory-db"
= ["https://github.com/rustsec/advisory-db"]
= "deny"
= "warn"
= "warn"
= "warn"
= [
# Add specific advisories to ignore here if needed
# "RUSTSEC-YYYY-NNNN",
]
[]
# The confidence threshold for detecting a license from a license text.
# 0.8 means we need to be 80% confident that the detected license is correct
= 0.8
# List of explicitly allowed licenses
= [
"MIT",
"Apache-2.0",
"Apache-2.0 WITH LLVM-exception",
"BSD-2-Clause",
"BSD-3-Clause",
"ISC",
"Unicode-DFS-2016",
"CC0-1.0",
]
# List of explicitly disallowed licenses
= [
"GPL-2.0",
"GPL-3.0",
"AGPL-1.0",
"AGPL-3.0",
"LGPL-2.0",
"LGPL-2.1",
"LGPL-3.0",
"MPL-2.0", # Mozilla Public License can be problematic
]
# Lint level for when multiple versions of the same license are detected
= "warn"
# Lint level for when a crate version requirement is an exact version
= "both"
# Lint level for when a license exception has a `-` in it
= "deny"
# The default lint level for `default` is `deny`
= "deny"
[[]]
# Allow ring to use its special license
= ["LicenseRef-ring"]
= "ring"
[[]]
# Allow rustls-webpki to use its ISC license
= ["ISC"]
= "rustls-webpki"
[]
# Lint level for when multiple versions of the same crate are detected
= "warn"
# Lint level for when a crate version requirement is `*`
= "allow"
= "all"
# List of crates to deny
= [
# Deny old versions of crates with known security issues
{ name = "openssl", version = "*" }, # Prefer rustls
{ = "native-tls", = "<0.2.8" },
{ name = "tokio", version = "<1.0" },
{ name = "hyper", version = "<0.14" },
{ name = "reqwest", version = "<0.11" },
]
# Certain crates/versions that will be skipped when doing duplicate detection.
= [
# Different versions of these are expected due to ecosystem transitions
{ name = "windows_x86_64_msvc" },
{ name = "syn", version = "1" }, # Many crates still use syn 1.x
{ = "time", = "0.1" }, # chrono still uses old time
]
# Similarly to `skip` allows you to skip certain crates from being checked
= [
# Skip AWS SDK trees as they have complex internal dependencies
{ name = "aws-config" },
{ name = "aws-sdk-sns" },
]
[]
# Lint level for what to happen when a crate from a crate registry that is
# not in the allow list is encountered
= "warn"
# Lint level for what to happen when a crate from a git repository that is not
# in the allow list is encountered
= "warn"
[]
# List of URLs for allowed registries. Defaults to the crates.io index
# if not specified. If it is specified but empty, no registries are allowed.
= ["https://github.com/rust-lang/crates.io-index"]
[]
# List of URLs for allowed Git repositories
# Add trusted git sources here if needed
# github = ["https://github.com/"]