kingfisher/Cargo.toml
2026-03-29 08:19:34 -07:00

304 lines
9 KiB
TOML

[workspace]
members = [
".",
"crates/kingfisher-core",
"crates/kingfisher-rules",
"crates/kingfisher-scanner",
]
resolver = "2"
[workspace.package]
edition = "2021"
rust-version = "1.90"
license = "Apache-2.0"
authors = ["Mick Grove <mick.grove@mongodb.com>"]
homepage = "https://github.com/mongodb/kingfisher"
repository = "https://github.com/mongodb/kingfisher"
publish = false
[workspace.dependencies]
anyhow = "1.0"
thiserror = "2.0.18"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
schemars = "0.8"
regex = "1.12"
bstr = { version = "1.12", features = ["serde"] }
smallvec = { version = "1", features = ["const_generics", "const_new", "union"] }
once_cell = "1.21"
parking_lot = "0.12"
tracing = "0.1"
vectorscan-rs = "0.0.5"
xxhash-rust = { version = "0.8", features = ["xxh3"] }
ignore = "0.4"
walkdir = "2.5"
include_dir = "0.7"
sha1 = "0.10"
sha2 = "0.10"
hmac = "0.12"
base64 = "0.22"
percent-encoding = "2.3"
time = "0.3"
uuid = "1.19"
rand = "0.10"
hex = "0.4"
rustc-hash = "2.1"
http = "1.4"
[package]
name = "kingfisher"
version = "1.92.0"
description = "MongoDB's blazingly fast and accurate secret scanning and validation tool"
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
homepage.workspace = true
repository.workspace = true
publish.workspace = true
[package.metadata.deb]
name = "kingfisher"
maintainer = "Mick Grove <mick.grove@mongodb.com>"
depends = "$auto"
section = "utils"
priority = "optional"
assets = [
["target/release/kingfisher", "/usr/bin/kingfisher", "755"]
]
[package.metadata.generate-rpm]
package = "kingfisher"
summary = "MongoDB's blazingly fast and accurate secret scanning and validation tool"
license = "Apache-2.0"
url = "https://github.com/mongodb/kingfisher"
assets = [
{ source = "target/release/kingfisher", dest = "/usr/bin/kingfisher", mode = "755" }
]
[dependencies]
# Library crates
kingfisher-core = { path = "crates/kingfisher-core" }
kingfisher-rules = { path = "crates/kingfisher-rules" }
kingfisher-scanner = { path = "crates/kingfisher-scanner", features = ["validation-all"] }
clap = { version = "4.5", features = [
"cargo",
"derive",
"env",
"unicode",
"wrap_help",
] }
anyhow = "1.0"
bstr = { version = "1.12", features = ["serde"] }
fixedbitset = "0.5"
gix = { version = "0.81", features = ["max-performance-safe", "serde", "blocking-network-client"] }
ignore = "0.4"
petgraph = "0.8"
roaring = "0.11.3"
schemars = "0.8"
serde = { version = "1.0", features = ["derive", "rc"] }
smallvec = { version = "1", features = [
"const_generics",
"const_new",
"union",
] }
tracing = "0.1.43"
indicatif = { version = "0.18", features = ["improved_unicode"] }
rayon = "1.11"
hex = "0.4.3"
vectorscan-rs = "0.0.5"
regex = "1.12.2"
serde_json = "1.0.145"
toon-format = { version = "0.4.4", default-features = false }
lazy_static = "1.5.0"
url = "2.5.7"
include_dir = { version = "0.7", features = ["glob"] }
strum = { version = "0.26", features = ["derive"] }
sysinfo = "0.31.4"
webbrowser = "1.0.5"
reqwest = { version = "0.12", default-features = false, features = [
"json",
"gzip",
"brotli",
"deflate",
"stream",
"rustls-tls",
"rustls-tls-native-roots",
"blocking",
"multipart",
] }
axum = { version = "0.8", default-features = false, features = ["tokio", "http1"] }
chrono = "0.4.42"
thiserror = "2.0.18"
tokio = { version = "1.48.0", features = ["full"] }
base64 = "0.22.1"
crossbeam-channel = "0.5.15"
indenter = "0.3.4"
serde-sarif = "0.4"
console = "0.16.3"
time = "0.3.44"
tempfile = "3.23.0"
num_cpus = "1.17.0"
once_cell = "1.21.3"
http = "1.4.0"
liquid = "0.26.11"
liquid-core = "0.26.11"
flate2 = "1.1"
thousands = "0.2.0"
base32 = "0.5.1"
crossbeam-skiplist = "0.1.3"
tokio-postgres = { version = "0.7", default-features = false, features = ["runtime"] }
mongodb = { version = "3.4", default-features = false, features = ["rustls-tls", "aws-auth", "compat-3-0-0", "dns-resolver"] }
mysql_async = { version = "0.36.1", default-features = false, features = ["default-rustls"] }
bson = { version = "3.1.0", features = ["serde"] }
ring = "0.17.14"
pem = "3.0.6"
aws-config = { version = "1.8.14", default-features = false, features = ["default-https-client", "rt-tokio", "credentials-process", "sso"] }
aws-credential-types = "1.2.12"
aws-sdk-sts = { version = "1.98.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-types = "1.3.12"
byteorder = "1.5.0"
parking_lot = "0.12.5"
octorust = "0.10.0"
reqwest-middleware = "0.5.1"
reqwest-middleware-octorust = { package = "reqwest-middleware", version = "0.4.2" }
tracing-subscriber = {version = "0.3.22", features = ["env-filter"] }
tracing-core = "0.1.35"
tree-sitter = "0.26.5"
aws-smithy-http-client = "1.1.10"
aws-smithy-runtime-api = "1.11.4"
aws-smithy-types = "1.4.4"
tree-sitter-bash = "0.25.1"
tree-sitter-c = "0.24.1"
tree-sitter-c-sharp = "0.23.1"
tree-sitter-cpp = "0.23.4"
tree-sitter-css = "0.25.0"
tree-sitter-go = "0.25.0"
tree-sitter-html = "0.23.2"
tree-sitter-java = "0.23.5"
tree-sitter-javascript = "0.25.0"
tree-sitter-php = "0.24.2"
tree-sitter-python = "0.25.0"
tree-sitter-ruby = "0.23.1"
tree-sitter-rust = "0.24.0"
tree-sitter-toml-ng = "0.7.0"
tree-sitter-typescript = "0.23.2"
tree-sitter-yaml = "0.7.2"
streaming-iterator = "0.1.9"
tree-sitter-regex = "0.25.0"
tree_magic_mini = "3.2"
content_inspector = "0.2.4"
rustc-hash = "2.1.1"
bzip2-rs = "0.1.2"
zip = { version = "2.4.2", default-features = false, features = ["deflate", "deflate64", "time"] }
tar = "0.4.44"
lzma-rs = "0.3.0"
asar = "0.3.0"
rusqlite = { version = "0.39", features = ["bundled"] }
blake3 = "1.8.2"
memchr = "2.7"
memmap2 = "0.9.9"
futures = "0.3.31"
dashmap = "6.1.0"
xxhash-rust = { version = "0.8.15", features = ["xxh3", "const_xxh3"] }
serde_yaml = "0.9.34"
hmac = "0.12.1"
sha2 = "0.10.9"
strum_macros = "0.28.0"
humantime = "2.3.0"
path-dedot = "3.1.1"
quick-xml = { version = "0.39.2", features = ["serde", "serialize"] }
rustls = "0.23.35"
tokio-postgres-rustls = "0.13.0"
rustls-native-certs = "0.8.2"
predicates = "3.1.3"
assert_cmd = "2.1.1"
proptest = "1.9.0"
color-backtrace = "0.7.2"
gitlab = "0.1801.0"
mimalloc = {version = "0.1.48", features = ["override"]}
thread_local = "1.1.9"
bloomfilter = "3.0.1"
uuid = "1.19.0"
rand = "0.10.0"
percent-encoding = "2.3.2"
self_update = { version = "0.43.1", default-features = false, features = ["reqwest", "rustls", "archive-tar", "archive-zip", "compression-flate2"] }
semver = "1.0.27"
globset = "0.4.18"
jsonwebtoken = { version = "10.2.0", features = ["aws-lc-rs"] }
ipnet = "2.11.0"
gouqi = { version = "0.20.0", features = ["async"] }
oci-client = { version = "0.15", default-features = false, features = ["rustls-tls"] }
walkdir = "2.5.0"
p256 = "0.13.2"
ed25519-dalek = { version = "2.2", features = ["pkcs8"] }
aws-sdk-s3 = { version = "1.123.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-iam = { version = "1.104.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-ec2 = { version = "1.211.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-dynamodb = { version = "1.105.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-lambda = { version = "1.116.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-kms = { version = "1.100.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
aws-sdk-secretsmanager = { version = "1.100.0", default-features = false, features = ["default-https-client", "rt-tokio"] }
gcloud-storage = { version = "1.1.1", default-features = false, features = [
"rustls-tls",
"auth",
"jwt-aws-lc-rs",
] }
tokei = "14.0.0"
crc32fast = "1.5.0"
bytes = "1.11.1"
tokio-rustls = "0.26.4"
h2 = "0.4.13"
[target.'cfg(not(windows))'.dependencies]
sha1 = { version = "0.10.6", features = ["asm"] }
[target.'cfg(windows)'.dependencies]
sha1 = "0.10.6"
[dependencies.tikv-jemallocator]
version = "0.6"
optional = true
[features]
default = ["use-mimalloc"]
use-mimalloc = ["mimalloc/override"]
use-jemalloc = ["tikv-jemallocator"]
system-alloc = [] # forces System allocator
[dev-dependencies]
pretty_assertions = "1.4"
temp-env = "0.3.6"
wiremock = "0.6.5"
git2 = { version = "0.20.3", default-features = false }
rand_chacha = "0.10.0"
testcontainers = "0.15.0"
[profile.release]
debug = false
strip = true #"debuginfo"
opt-level = 3 # Maximum optimization for performance
lto = true # Enable Link Time Optimization
codegen-units = 1 # Optimize for size but slower compilation
# panic = "abort" # Remove unwind tables for panics
rpath = false # Don't embed path dependencies
incremental = false
[profile.dev]
opt-level = 0
debug = true
incremental = true
codegen-units = 256
[patch.crates-io]
vectorscan-rs = { path = "vendor/vectorscan-rs/vectorscan-rs" }
vectorscan-rs-sys = { path = "vendor/vectorscan-rs/vectorscan-rs-sys" }
[profile.profiling]
inherits = "release"
debug = true