[package] name = "lurk" version = "0.3.1" authors = ["Lurk Lab Engineering "] license = "MIT OR Apache-2.0" description = "Turing-Complete Zero Knowledge" edition = "2021" repository = "https://github.com/lurk-lab/lurk-rs" rust-version = "1.71.1" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] ahash = "0.8.6" anyhow = { workspace = true } anymap = "1.0.0-beta.2" base32ct = { version = "0.2.0", features = ["std"] } base64 = { workspace = true } base-x = "0.2.11" bellpepper = { workspace = true } bellpepper-core = { workspace = true } bincode = { workspace = true } bytecount = "0.6.7" camino = { workspace = true, features = ["serde1"] } clap = { workspace = true, features = ["derive"] } config = "0.13.3" dashmap = "5.5.0" ff = { workspace = true } fxhash = "0.2.1" generic-array = "0.14.7" halo2curves = "0.4" hex = { version = "0.4.3", features = ["serde"] } indexmap = { version = "2.1.0", features = ["rayon", "serde"] } itertools = "0.11" lurk-macros = { version = "0.2.0", path = "lurk-macros" } lurk-metrics = { version = "0.2.0", path = "lurk-metrics" } metrics = { workspace = true } neptune = { workspace = true, features = ["arity2", "arity4", "arity8", "arity16", "pasta"] } nom = "7.1.3" nom_locate = "4.1.0" nova = { workspace = true } num-bigint = "0.4.3" num_cpus = "1.10.1" num-integer = "0.1.45" num-traits = "0.2.15" once_cell = { workspace = true } pairing = { workspace = true } pasta_curves = { workspace = true, features = ["repr-c", "serde"] } rand = { workspace = true } rand_core = { version = "0.6.4", default-features = false } rand_xorshift = "0.3.0" rayon = "1.7.0" rustyline-derive = "0.9.0" serde = { workspace = true, features = ["derive"] } serde_bytes = "0.11.12" serde_json = { workspace = true } serde_repr = "0.1.14" tap = "1.0.1" stable_deref_trait = "1.2.0" thiserror = { workspace = true } abomonation = { workspace = true } abomonation_derive = { version = "0.1.0", package = "abomonation_derive_ng" } crossbeam = "0.8.2" byteorder = "1.4.3" circom-scotia = "0.2.0" sha2 = { version = "0.10.2" } reqwest = { version = "0.11.18", features = ["stream", "blocking"] } ansi_term = "0.12.1" tracing = { workspace = true } tracing-texray = { workspace = true } tracing-subscriber = { workspace = true, features = ["env-filter"] } elsa = { version = "0.1.0", package = "lurk-elsa", features = ["indexmap"] } arc-swap = "1.6.0" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] memmap = { version = "0.5.10", package = "memmap2" } pasta-msm = { workspace = true } proptest = { workspace = true } proptest-derive = { workspace = true } rand = "0.8.5" rustyline = { version = "11.0", features = [ "derive", "with-file-history", ], default-features = false } home = "0.5.5" [target.'cfg(target_arch = "wasm32")'.dependencies] getrandom = { version = "0.2", features = ["js"] } rustyline = { version = "11.0", features = ["derive"], default-features = false } [features] default = [] opencl = ["neptune/opencl", "nova/opencl"] cuda = ["neptune/cuda", "nova/cuda"] # compile without ISA extensions portable = ["pasta-msm/portable", "nova/portable"] flamegraph = ["pprof/flamegraph", "pprof/criterion"] [dev-dependencies] assert_cmd = "2.0.12" cfg-if = "1.0.0" ascii_table = "4.0.2" criterion = "0.5" expect-test = "1.4.1" hex = "0.4.3" pprof = { version = "0.13" } structopt = { version = "0.3", default-features = false } tap = "1.0.1" tempfile = { workspace = true } tracing-test = "0.2" [build-dependencies] vergen = { version = "8", features = ["build", "git", "gitcl"] } [workspace] resolver = "2" members = ["lurk-macros", "lurk-metrics"] # Dependencies that should be kept in sync through the whole workspace [workspace.dependencies] abomonation = "0.7.3" anyhow = "1.0.72" base64 = "0.13.1" bellpepper = "0.4.1" bellpepper-core = "0.4.0" bincode = "1.3.3" clap = "4.3.17" ff = "0.13" metrics = "0.21.1" neptune = { version = "13.0.0", features = ["abomonation"] } nova = { version = "0.1.0", package = "arecibo" } once_cell = "1.18.0" pairing = { version = "0.23" } pasta_curves = "0.5.1" pasta-msm = "0.1.4" proptest = "1.2.0" proptest-derive = "0.3.0" rand = "0.8" serde = "1.0" serde_json = { version = "1.0" } tempfile = "3.6.0" camino = "1.1.6" thiserror = "1.0.44" tracing = "0.1.37" tracing-texray = "0.2.0" tracing-subscriber = "0.3.17" [[bin]] name = "lurk" path = "src/main.rs" [profile.dev-ci] inherits = "dev" # By compiling dependencies with optimizations, performing tests gets much faster. opt-level = 3 lto = "thin" incremental = false codegen-units = 16 [profile.dev-no-assertions] # Some tests in the case gadget depend on debug assertions # being off (they test release behavior in case of duplicate clauses). inherits = "dev-ci" debug-assertions = false [[bench]] name = "end2end" harness = false [[bench]] name = "fibonacci" harness = false [[bench]] name = "synthesis" harness = false [[bench]] name = "sha256" harness = false [[bench]] name = "public_params" harness = false