[package]
edition = "2021"
rust-version = "1.85"
name = "pyrograph"
version = "0.1.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "GPU-accelerated taint analysis for supply chain malware detection"
readme = "README.md"
keywords = [
"taint-analysis",
"gpu",
"malware",
"supply-chain",
"security",
]
categories = [
"algorithms",
"development-tools",
]
license = "MIT"
repository = "https://github.com/santhsecurity/Santh"
[features]
default = ["gpu"]
go = [
"dep:tree-sitter",
"dep:tree-sitter-go",
]
gpu = [
"dep:wgpu",
"dep:bytemuck",
]
js = [
"dep:swc_ecma_parser",
"dep:swc_ecma_ast",
"dep:swc_common",
"dep:swc_ecma_visit",
]
python = ["dep:rustpython-parser"]
rust-lang = ["dep:syn"]
[lib]
name = "pyrograph"
path = "src/lib.rs"
[[test]]
name = "adversarial_adversarial"
path = "tests/adversarial/adversarial.rs"
[[test]]
name = "adversarial_js_vuln_ssrf"
path = "tests/adversarial/js_vuln_ssrf.rs"
[[test]]
name = "adversarial_malware"
path = "tests/adversarial/malware.rs"
[[test]]
name = "adversarial_malware_supply_chain"
path = "tests/adversarial/malware_supply_chain.rs"
[[test]]
name = "adversarial_malware_wave3"
path = "tests/adversarial/malware_wave3.rs"
[[test]]
name = "adversarial_python_malware"
path = "tests/adversarial/python_malware.rs"
[[test]]
name = "adversarial_python_setup_attacks"
path = "tests/adversarial/python_setup_attacks.rs"
[[test]]
name = "adversarial_razor_edge"
path = "tests/adversarial/razor_edge.rs"
[[test]]
name = "adversarial_rust_malware"
path = "tests/adversarial/rust_malware.rs"
[[test]]
name = "adversarial_taint_evasion"
path = "tests/adversarial/taint_evasion.rs"
[[test]]
name = "adversarial_test_obfusc"
path = "tests/adversarial/test_obfusc.rs"
[[test]]
name = "adversarial_test_obfusc2"
path = "tests/adversarial/test_obfusc2.rs"
[[test]]
name = "break_it"
path = "tests/break_it/main.rs"
[[test]]
name = "corpus_validation"
path = "tests/corpus_validation.rs"
[[test]]
name = "express_fp"
path = "tests/js/fp/express.rs"
required-features = ["js"]
[[test]]
name = "integration_integration"
path = "tests/integration/integration.rs"
[[test]]
name = "integration_real_incidents"
path = "tests/integration/real_incidents.rs"
[[test]]
name = "js_corpus"
path = "tests/js_corpus.rs"
[[test]]
name = "js_corpus_tests"
path = "tests/corpus/js_corpus_tests.rs"
[[test]]
name = "js_corpus_validation"
path = "tests/js_corpus_validation.rs"
[[test]]
name = "js_malware_obfuscation_heavy"
path = "tests/js/malware/obfuscation_heavy.rs"
required-features = ["js"]
[[test]]
name = "property_proptest"
path = "tests/property/proptest.rs"
[[test]]
name = "python_corpus_validation"
path = "tests/python_corpus_validation.rs"
[[test]]
name = "rust_chains_batch35"
path = "tests/rust_chains_batch35.rs"
[[test]]
name = "ssh_theft_regression"
path = "tests/ssh_theft_regression.rs"
[[test]]
name = "tmp_test"
path = "tests/tmp_test.rs"
[[test]]
name = "unit_advanced_dataflow"
path = "tests/unit/advanced_dataflow.rs"
[[test]]
name = "unit_false_positives"
path = "tests/unit/false_positives.rs"
[[test]]
name = "unit_fp_infrastructure"
path = "tests/unit/fp_infrastructure.rs"
[[test]]
name = "unit_fp_popular_packages"
path = "tests/unit/fp_popular_packages.rs"
[[test]]
name = "unit_go_detection"
path = "tests/unit/go_detection.rs"
[[test]]
name = "unit_go_fp_legitimate"
path = "tests/unit/go_fp_legitimate.rs"
[[test]]
name = "unit_go_malware"
path = "tests/unit/go_malware.rs"
[[test]]
name = "unit_js_fp_crossenv"
path = "tests/unit/js_fp_crossenv.rs"
[[test]]
name = "unit_js_tests"
path = "tests/unit/js_tests.rs"
[[test]]
name = "unit_print_graph"
path = "tests/unit/print_graph.rs"
[[test]]
name = "unit_print_graph2"
path = "tests/unit/print_graph2.rs"
[[test]]
name = "unit_python_deep_improvement"
path = "tests/unit/python_deep_improvement.rs"
[[test]]
name = "unit_python_detection"
path = "tests/unit/python_detection.rs"
[[test]]
name = "unit_python_pypi_2024"
path = "tests/unit/python_pypi_2024.rs"
[[test]]
name = "unit_python_tests"
path = "tests/unit/python_tests.rs"
[[test]]
name = "unit_rust_advanced"
path = "tests/unit/rust_advanced.rs"
[[test]]
name = "unit_rust_chains"
path = "tests/unit/rust_chains.rs"
[[test]]
name = "unit_rust_comprehensive"
path = "tests/unit/rust_comprehensive.rs"
[[test]]
name = "unit_test_rust_parser"
path = "tests/unit/test_rust_parser.rs"
[[test]]
name = "unit_unit"
path = "tests/unit/unit.rs"
[dependencies.bytemuck]
version = "1.15"
features = ["derive"]
optional = true
[dependencies.rustpython-parser]
version = "0.4.0"
optional = true
[dependencies.serde]
version = "=1.0.219"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.swc_common]
version = "0.40"
optional = true
[dependencies.swc_ecma_ast]
version = "0.121"
optional = true
[dependencies.swc_ecma_parser]
version = "0.152"
optional = true
[dependencies.swc_ecma_visit]
version = "0.107"
optional = true
[dependencies.syn]
version = "2.0"
features = [
"full",
"visit",
]
optional = true
[dependencies.thiserror]
version = "1.0"
[dependencies.toml]
version = "0.8"
[dependencies.tracing]
version = "0.1"
[dependencies.tree-sitter]
version = "0.25"
optional = true
[dependencies.tree-sitter-go]
version = "0.25"
optional = true
[dependencies.wgpu]
version = "0.19"
optional = true
[dev-dependencies.proptest]
version = "1.4"
[dev-dependencies.tempfile]
version = "3.10"
[dev-dependencies.tokio]
version = "1"
features = ["full"]