[package] name = "decaf377" version = "0.10.1" authors = [ "Henry de Valence ", "redshiftzero ", ] description = "A prime-order group designed for use in SNARKs over BLS12-377" edition = "2021" license = "MIT OR Apache-2.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] # no-alloc, no-std cfg-if = "1.0" hex = { version = "=0.4.3", default-features = false } subtle = { version = "2.5", default-features = false } rand_core = { version = "0.6", default-features = false } zeroize = { version = "1.7", default-features = false } # no-std num-bigint = { version = "0.4.4", optional = true, default-features = false } # std hashbrown = { version = "0.14.3", optional = true } ark-relations = { version = "0.4", optional = true } ark-r1cs-std = { version = "0.4", optional = true } ark-std = { version = "0.4", optional = true } ark-ec = { version = "0.4", optional = true } ark-ff = { version = "0.4", optional = true } ark-serialize = { version = "0.4", optional = true } ark-bls12-377 = { version = "0.4", optional = true } ark-ed-on-bls12-377 = { version = "0.4", optional = true } ark-groth16 = { version = "0.4", optional = true } ark-snark = { version = "0.4", optional = true } once_cell = { version = "1.8", optional = true, default-features = false } # This matches what ark-std (a library for no_std compatibility) does, having # a default feature of std - without the ark-std std feature, decaf377 doesn't # compile [features] default = ["arkworks"] alloc = ["once_cell/alloc", "zeroize/alloc", "rand_core/alloc"] std = [ "alloc", "zeroize/std", "once_cell/std", "num-bigint/std", "hex/std", "subtle/std", "rand_core/std" ] parallel = [ "ark-ff/parallel", "ark-ec/parallel", "ark-groth16/parallel", "ark-std/parallel", "ark-r1cs-std/parallel", ] # TODO: eventually, feature-gate all arkworks deps behind this feature. arkworks = [ "std", "ark-std", "ark-ec", "ark-ff", "ark-serialize", "ark-bls12-377", "ark-ed-on-bls12-377", "hashbrown", ] r1cs = ["arkworks", "ark-groth16", "ark-r1cs-std", "ark-relations", "ark-snark"] u32_backend = [] [dev-dependencies] proptest = "1" criterion = { version = "0.3", features = ["html_reports"] } rand_core = { version = "0.6.3", features = ["getrandom"] } rand_chacha = "0.3" anyhow = { version = "1.0" } [[test]] name = "encoding" required-features = ["arkworks"] [[test]] name = "groth16_gadgets" required-features = ["r1cs"] [[test]] name = "operations" required-features = ["arkworks"] [[bench]] name = "sqrt" harness = false required-features = ["arkworks"] # Create profile for running checks in CI that are mostly "release" mode, # but also checking the `debug_assert `lines. [profile.ci] inherits = "release" debug-assertions = true