[package]
name = "hyperplonk"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
arithmetic = { path = "../arithmetic" }
ark-ec = { version = "^0.3.0", default-features = false }
ark-ff = { version = "^0.3.0", default-features = false }
ark-poly = { version = "^0.3.0", default-features = false }
ark-serialize = { version = "^0.3.0", default-features = false, features = [ "derive" ] }
ark-std = { version = "^0.3.0", default-features = false }
displaydoc = { version = "0.2.3", default-features = false }
rayon = { version = "1.5.2", default-features = false, optional = true }
subroutines = { path = "../subroutines" }
transcript = { path = "../transcript" }
util = { path = "../util" }

[dev-dependencies]
ark-bls12-381 = { version = "0.3.0", default-features = false, features = [ "curve" ] }
# Benchmarks
[[bench]]
name = "hyperplonk-benches"
path = "benches/bench.rs"
harness = false

[features]
# default = [ ]
# default = [ "parallel" ]
# default = [ "parallel", "print-trace" ]
default = ["parallel", "extensive_sanity_checks"]
bench = ["parallel"]
# extensive sanity checks that are useful for debugging
extensive_sanity_checks = [
    "subroutines/extensive_sanity_checks",
 ]
parallel = [ 
    "rayon",
    "ark-std/parallel", 
    "ark-ff/parallel",  
    "ark-poly/parallel", 
    "ark-ec/parallel",

    "arithmetic/parallel",
    "subroutines/parallel",
    "util/parallel"
    ]
print-trace = [ 
    "ark-std/print-trace",
    "arithmetic/print-trace",
    "subroutines/print-trace"
    ] 
