[package]
edition = "2021"
name = "foxguard"
version = "0.12.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A security scanner as fast as a linter, written in Rust. 200+ built-in rules across 12 source languages."
homepage = "https://foxguard.dev"
readme = "README.md"
keywords = [
"security",
"linter",
"static-analysis",
"sast",
"vulnerability",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/0sec-labs/foxguard"
[features]
default = []
github-app = [
"dep:base64",
"dep:axum",
"dep:tokio",
"dep:hmac",
"dep:hex",
"dep:tower-http",
"dep:tracing",
"dep:tracing-subscriber",
"dep:jsonwebtoken",
]
[lib]
name = "foxguard"
path = "src/lib.rs"
[[bin]]
name = "foxguard"
path = "src/main.rs"
[[bin]]
name = "foxguard-adapter"
path = "src/bin/foxguard_adapter.rs"
[[bin]]
name = "foxguard-github-app"
path = "src/bin/foxguard_github_app.rs"
required-features = ["github-app"]
[[bin]]
name = "foxguard-mcp"
path = "src/bin/foxguard_mcp.rs"
[[bin]]
name = "foxguard_process_test_helper"
path = "tests/bin/process_test_helper.rs"
[[bin]]
name = "gen_rules_ts"
path = "src/bin/gen_rules_ts.rs"
[[bin]]
name = "registry_coverage"
path = "src/bin/registry_coverage.rs"
[[test]]
name = "ast_rule_batch_bench"
path = "tests/ast_rule_batch_bench.rs"
[[test]]
name = "changed_files_from"
path = "tests/changed_files_from.rs"
[[test]]
name = "cnsa2_compliance"
path = "tests/cnsa2_compliance.rs"
[[test]]
name = "coccinelle_integration"
path = "tests/coccinelle_integration.rs"
[[test]]
name = "cross_language_matrix"
path = "tests/cross_language_matrix.rs"
[[test]]
name = "fp_secret_names"
path = "tests/fp_secret_names.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
[[test]]
name = "kernel_dirty_frag"
path = "tests/kernel_dirty_frag.rs"
[[test]]
name = "mcp_server"
path = "tests/mcp_server.rs"
[[test]]
name = "pqc_readiness"
path = "tests/pqc_readiness.rs"
[[test]]
name = "process_wrapper"
path = "tests/process_wrapper.rs"
[[test]]
name = "realistic_fixtures"
path = "tests/realistic_fixtures.rs"
[[test]]
name = "release_provenance"
path = "tests/release_provenance.rs"
[[test]]
name = "rule_inventory"
path = "tests/rule_inventory.rs"
[[test]]
name = "semgrep_compat_bench"
path = "tests/semgrep_compat_bench.rs"
[[test]]
name = "semgrep_integration"
path = "tests/semgrep_integration.rs"
[[test]]
name = "semgrep_parity"
path = "tests/semgrep_parity.rs"
[[test]]
name = "semgrep_parity_c"
path = "tests/semgrep_parity_c.rs"
[[test]]
name = "semgrep_parity_generic"
path = "tests/semgrep_parity_generic.rs"
[[test]]
name = "semgrep_parity_go"
path = "tests/semgrep_parity_go.rs"
[[test]]
name = "semgrep_parity_haskell"
path = "tests/semgrep_parity_haskell.rs"
[[test]]
name = "semgrep_parity_hcl"
path = "tests/semgrep_parity_hcl.rs"
[[test]]
name = "semgrep_parity_inverse"
path = "tests/semgrep_parity_inverse.rs"
[[test]]
name = "semgrep_parity_java"
path = "tests/semgrep_parity_java.rs"
[[test]]
name = "semgrep_parity_javascript"
path = "tests/semgrep_parity_javascript.rs"
[[test]]
name = "semgrep_parity_kotlin"
path = "tests/semgrep_parity_kotlin.rs"
[[test]]
name = "swift_safe"
path = "tests/swift_safe.rs"
[dependencies.axum]
version = "0.7"
features = [
"http1",
"tokio",
"json",
"macros",
]
optional = true
default-features = false
[dependencies.base64]
version = "0.22"
optional = true
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.colored]
version = "2"
[dependencies.crossterm]
version = "0.29"
[dependencies.fancy-regex]
version = "0.16"
[dependencies.globset]
version = "0.4"
[dependencies.hex]
version = "0.4"
optional = true
[dependencies.hmac]
version = "0.12"
optional = true
[dependencies.ignore]
version = "0.4"
[dependencies.include_dir]
version = "0.7"
[dependencies.jsonwebtoken]
version = "10.4.0"
features = ["rust_crypto"]
optional = true
[dependencies.pem]
version = "3"
[dependencies.pep440_rs]
version = "0.7"
[dependencies.ratatui]
version = "0.30"
[dependencies.rayon]
version = "1"
[dependencies.regex]
version = "1"
[dependencies.reqwest]
version = "0.13.3"
features = [
"blocking",
"json",
"rustls",
]
default-features = false
[dependencies.semver]
version = "1"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_yaml_ng]
version = "0.10"
[dependencies.sha2]
version = "0.10"
[dependencies.shlex]
version = "1"
[dependencies.tempfile]
version = "3"
[dependencies.tokio]
version = "1"
features = [
"macros",
"rt-multi-thread",
"signal",
]
optional = true
default-features = false
[dependencies.toml]
version = "0.8"
[dependencies.tower-http]
version = "0.6"
features = [
"trace",
"limit",
]
optional = true
default-features = false
[dependencies.tracing]
version = "0.1"
optional = true
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"fmt",
"env-filter",
]
optional = true
default-features = false
[dependencies.tree-sitter]
version = "0.25"
[dependencies.tree-sitter-bash]
version = "0.23"
[dependencies.tree-sitter-c]
version = "0.24"
[dependencies.tree-sitter-c-sharp]
version = "0.23"
[dependencies.tree-sitter-clojure-orchard]
version = "0.2.5"
[dependencies.tree-sitter-containerfile]
version = "0.8"
[dependencies.tree-sitter-dart]
version = "0.2"
[dependencies.tree-sitter-elixir]
version = "0.3.5"
[dependencies.tree-sitter-go]
version = "0.23"
[dependencies.tree-sitter-haskell]
version = "0.23.1"
[dependencies.tree-sitter-hcl]
version = "1.1"
[dependencies.tree-sitter-html]
version = "0.23"
[dependencies.tree-sitter-java]
version = "0.23"
[dependencies.tree-sitter-javascript]
version = "0.23"
[dependencies.tree-sitter-json]
version = "0.24.8"
[dependencies.tree-sitter-kotlin-sg]
version = "0.4"
[dependencies.tree-sitter-ocaml]
version = "0.25.0"
[dependencies.tree-sitter-php]
version = "0.24"
[dependencies.tree-sitter-python]
version = "0.23"
[dependencies.tree-sitter-ruby]
version = "0.23"
[dependencies.tree-sitter-rust]
version = "0.24"
[dependencies.tree-sitter-scala]
version = "0.26.0"
[dependencies.tree-sitter-sfapex]
version = "3.0.0"
[dependencies.tree-sitter-solidity]
version = "1.2"
[dependencies.tree-sitter-swift]
version = "0.7"
[dependencies.tree-sitter-typescript]
version = "0.23"
[dependencies.tree-sitter-xml]
version = "0.7"
[dependencies.tree-sitter-yaml]
version = "0.7"
[dependencies.unicode-segmentation]
version = "1"
[dependencies.unicode-width]
version = "0.2"
[dependencies.uuid]
version = "1"
features = ["v5"]
[dependencies.wait-timeout]
version = "0.2.1"
[dependencies.walkdir]
version = "2"
[dependencies.x509-parser]
version = "0.16"
[dev-dependencies]