recon-cli 0.82.1

Versatile network reconnaissance CLI: HTTP/TLS/DNS, multi-protocol probes, and a Rhai script engine
Documentation
[package]
# Note: the crate is published on crates.io as `recon-cli` because the bare
# `recon` name has been registered (and unused) since 2019. The installed
# binary is still `recon` — `cargo install recon-cli` produces a `recon`
# executable thanks to the [[bin]] block below.
name = "recon-cli"
version = "0.82.1"
edition = "2021"
rust-version = "1.85"
license = "MIT"
description = "Versatile network reconnaissance CLI: HTTP/TLS/DNS, multi-protocol probes, and a Rhai script engine"
authors = ["Thomas Björk <codedv8@gmail.com>"]
homepage = "https://github.com/codedeviate/recon"
repository = "https://github.com/codedeviate/recon"
documentation = "https://github.com/codedeviate/recon/blob/master/docs/MANUAL.md"
readme = "README.md"
keywords = ["http", "curl", "dns", "tls", "scripting"]
categories = ["command-line-utilities", "network-programming"]
exclude = [
    "dump.rdb",
    "target/",
    "docs/MANUAL.pdf",
    ".git/",
    ".github/",
    ".idea/",
    ".claude/",
    ".gitignore",
    ".worktrees/",
    "CLAUDE.md",
    "HISTORY.md",
    "OUT-OF-SCOPE.md",
]

[[bin]]
name = "recon"
path = "src/main.rs"

[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"

[profile.dev]
incremental = false

[profile.dev.package."*"]
debug = false

[dependencies]
reqwest = { version = "0.12", features = ["blocking", "json", "multipart", "rustls-tls", "gzip", "deflate", "brotli", "zstd", "socks"] }
clap = { version = "4", features = ["derive"] }
anyhow = "1"
arboard = { version = "3", default-features = false, features = ["wayland-data-control"] }
indicatif = "0.17"
colored = "2"
native-tls = "0.2"
x509-parser = "0.16"
url = "2"
hickory-resolver = { version = "0.24", features = ["system-config"] }
tokio = { version = "1", features = ["rt", "rt-multi-thread", "net", "macros", "signal", "fs", "io-util"] }
socket2 = "0.6"
rusqlite = "0.32"
serde_json = "1"
serde_yaml = "0.9"
quick-xml = "0.37"
ssh2 = { version = "0.9", features = ["vendored-openssl"] }
crossterm = "0.28"
rustls = { version = "0.23", features = ["ring"] }
base64 = "0.22"
serde = { version = "1", features = ["derive"] }
toml = "0.8"
jsonwebtoken = "9"
pem = "3"
hyper = { version = "1", features = ["http1", "http2", "server"] }
hyper-util = { version = "0.1", features = ["tokio", "http1", "http2"] }
http-body-util = "0.1"
bytes = "1"
tokio-rustls = "0.26"
rustls-pemfile = "2"
mime_guess = "2"
digest = "0.10"
md-5 = "0.10"
sha1 = "0.10"
sha2 = "0.10"
sha3 = "0.10"
blake3 = "1"
crc32fast = "1"
libc = "0.2"
flate2 = "1"
zstd = "0.13"
brotli = "7"
bzip2 = "0.4"
lz4_flex = "0.11"
xz2 = "0.1"
snap = "1"
zip = { version = "2", default-features = false, features = ["deflate", "bzip2"] }
tar = "0.4"
qrcode = { version = "0.14", default-features = false, features = ["svg"] }
datamatrix = "0.3"
barcoders = { version = "1", default-features = false, features = ["ascii", "svg"] }
png = "0.17"
age = { version = "0.11", default-features = false, features = ["armor"] }
rpassword = "7"
secrecy = "0.8"
bs58 = "0.5"
bech32 = "0.11"
filetime = "0.2"
httpdate = "1"
ctrlc = "3"
rand = "0.8"
rumqttc = "0.24"
webp = "0.3"
webpki-roots = "1"
tungstenite = { version = "0.29.0", default-features = false, features = ["handshake", "rustls-tls-webpki-roots"] }
ldap3 = { version = "0.12.1", default-features = false, features = ["sync", "tls-rustls-ring"] }
rhai = { version = "1", features = ["sync"] }
rustyline = "14"
tempfile = "3"
encoding_rs = "0.8"
chardetng = "0.1"
lettre = { version = "0.11", default-features = false, features = ["smtp-transport", "rustls-tls", "ring", "builder", "dkim"] }
suppaftp = { version = "6", default-features = false, features = ["rustls"] }
imap = { version = "3.0.0-alpha.15", default-features = false, features = ["rustls-tls"] }
similar = "2"
xattr = "1"
rxing = { version = "0.7", default-features = false, features = ["image"] }
comrak = { version = "0.28", default-features = false }
dotenvy = "0.15"
wreq = { version = "5.3", optional = true, features = ["json", "multipart", "gzip", "deflate", "brotli", "zstd", "socks"] }
wreq-util = { version = "2.2", optional = true, default-features = false, features = ["emulation", "emulation-serde"] }
http = "1"

[features]
default = []
impersonate = ["dep:wreq", "dep:wreq-util"]

[dev-dependencies]
wiremock = "0.6"