nyx/Cargo.toml

128 lines
3.7 KiB
TOML

[package]
name = "nyx-scanner"
version = "0.7.0"
edition = "2024"
rust-version = "1.88"
description = "A multi-language static analysis tool for detecting security vulnerabilities"
license = "GPL-3.0-or-later"
authors = ["Eli Peter <elicpeter@example.com>"]
homepage = "https://github.com/elicpeter/nyx"
repository = "https://github.com/elicpeter/nyx"
documentation = "https://elicpeter.github.io/nyx/"
keywords = ["security", "vulnerability", "scanner", "static-analysis", "cli"]
categories = ["security", "command-line-utilities", "development-tools", "parser-implementations", "text-processing"]
readme = "README.md"
default-run = "nyx"
include = [
"/src/**",
"/tools/**",
"/build.rs",
"/Cargo.toml",
"/Cargo.lock",
"/README.md",
"/LICENSE",
"/THIRDPARTY-LICENSES.html",
"/default-nyx.conf",
]
autoexamples = false
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/nyx-{ target }{ archive-suffix }"
pkg-fmt = "zip"
bin-dir = "target/{ target }/release/{ bin }{ binary-ext }"
# docs.rs builds the `serve` feature (default) so the server module renders.
# `smt` is left off — bundled Z3 takes too long on docs.rs builders, and
# `smt-system-z3` needs a system library that isn't available there.
[package.metadata.docs.rs]
features = ["serve"]
rustdoc-args = ["--cfg", "docsrs"]
[features]
default = ["serve"]
serve = ["dep:axum", "dep:tokio", "dep:tokio-stream", "dep:tower-http"]
smt = ["dep:z3", "z3/bundled"]
smt-system-z3 = ["dep:z3"]
docgen = []
[lib]
name = "nyx_scanner"
path = "src/lib.rs"
[[bin]]
name = "nyx"
path = "src/main.rs"
[[bin]]
name = "nyx-docgen"
path = "tools/docgen/main.rs"
required-features = ["docgen"]
[[bench]]
name = "scan_bench"
harness = false
[dev-dependencies]
tempfile = "3.27.0"
criterion = { version = "0.8.2", features = ["html_reports"] }
assert_cmd = "2.2.2"
predicates = "3.1.4"
glob = "0.3.3"
tower = { version = "0.5.3", features = ["util"] }
[dependencies]
directories = "6.0.0"
clap = { version = "4.6.1", features = ["derive"] }
serde = { version = "1.0.228", features = ["derive"] }
serde_json = "1.0.149"
rmp-serde = "1.3.1"
toml = "1.1.2"
tracing-subscriber = { version = "0.3.23", features = ["env-filter", "json", "ansi","time"] }
tracing = "0.1.44"
num_cpus = "1.17.0"
rusqlite = { version = "0.39.0", features = ["bundled"] }
r2d2_sqlite = { version = "0.34.0", features = ["bundled"] }
ignore = "0.4.25"
tree-sitter = "0.26.8"
tree-sitter-rust = "0.24.2"
tree-sitter-c = "0.24.2"
tree-sitter-cpp = "0.23.4"
tree-sitter-java = "0.23.5"
tree-sitter-typescript = "0.23.2"
tree-sitter-javascript = "0.25.0"
tree-sitter-go = "0.25.0"
tree-sitter-php = "0.24.2"
tree-sitter-python = "0.25.0"
tree-sitter-ruby = "0.23.1"
crossbeam-channel = "0.5.15"
blake3 = "1.8.5"
once_cell = "1.21.4"
console = "0.16.3"
terminal_size = "0.4.4"
rayon = "1.12.0"
r2d2 = "0.8.10"
bytesize = "2.3.1"
chrono = { version = "0.4.44", default-features = false, features = ["std", "clock", "serde"] }
thiserror = "2.0.18"
dashmap = "6.1.0"
parking_lot = "0.12.5"
petgraph = { version = "0.8.3", features = ["serde-1"] }
bitflags = "2.11.1"
phf = { version = "0.13.1", features = ["macros"] }
indicatif = "0.18.4"
smallvec = { version = "1.15.1", features = ["serde"] }
rustc-hash = "2.1.2"
uuid = { version = "1.23.1", features = ["v4"] }
axum = { version = "0.8.9", optional = true }
tokio = { version = "1.52.3", features = ["rt-multi-thread", "macros", "signal", "sync"], optional = true }
tokio-stream = { version = "0.1.18", features = ["sync"], optional = true }
tower-http = { version = "0.6.10", features = ["cors", "compression-gzip", "trace", "set-header", "limit"], optional = true }
z3 = { version = "0.20.0", optional = true}
[profile.release]
lto = true
codegen-units = 1
debug = 1
strip = "none"