pyrograph 0.1.0

GPU-accelerated taint analysis for supply chain malware detection
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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"]