[package]
name = "powdr-plonky3"
version.workspace = true
edition.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true

[[bin]]
name = "gen_poseidon_consts"
path = "src/bin/gen_poseidon_consts.rs"
bench = false                           # See https://github.com/bheisler/criterion.rs/issues/458

[features]
default = []
nightly-features = [
  "p3-goldilocks/nightly-features",
  "p3-baby-bear/nightly-features",
  "p3-koala-bear/nightly-features",
  "p3-mersenne-31/nightly-features",
  "p3-poseidon2/nightly-features",
]
# As a guest in powdr, use accelerated operations.
# Silently ignored if target is not zkvm.
powdr-accel = []

[dependencies]
powdr-ast.workspace = true
powdr-number.workspace = true
powdr-executor-utils.workspace = true
rand = "0.8.5"

p3-air = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-matrix = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-field = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-uni-stark = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-commit = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0", features = [
  "test-utils",
] }
p3-poseidon2 = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-poseidon = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-fri = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
# Activating the "parallel" feature gives us parallelism in the prover.
p3-maybe-rayon = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0", features = [
  "parallel",
] }

p3-mds = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-merkle-tree = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-mersenne-31 = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-monty-31 = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-circle = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-baby-bear = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-koala-bear = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-goldilocks = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-symmetric = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-dft = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-challenger = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
p3-util = { git = "https://github.com/plonky3/Plonky3.git", rev = "2192432ddf28e7359dd2c577447886463e6124f0" }
lazy_static = "1.4.0"
rand_chacha = "0.3.1"
itertools = "0.13.0"
tracing = "0.1.37"
serde = { version = "1.0", default-features = false, features = [
  "derive",
  "alloc",
] }

[target.'cfg(all(target_os = "zkvm", target_arch = "riscv32"))'.dependencies]
powdr-riscv-runtime = { path = "../riscv-runtime", features = [
  "std",
  "getrandom",
  "allow_fake_rand",
] }
indexmap = { version = "1.9.3", features = ["std"] }

[lib]
bench = false # See https://github.com/bheisler/criterion.rs/issues/458
