[package] name = "zkp-stark" version = "0.2.1" description = "Implementation of the STARK ZK-proof system" repository = "https://github.com/0xProject/starkcrypto/tree/master/crypto/stark" keywords = ["zkp", "stark", "no-std", "wasm"] categories = ["cryptography", "algorithms", "no-std", "wasm"] authors = [ "Remco Bloemen ", "Mason Liang ", "Paul Vienhage "] readme = "Readme.md" license = "Apache-2.0" edition = "2018" [dependencies] hex = { version = "0.4.0", optional = true } itertools = { version = "0.9.0", default_features = false } lazy_static = { version = "1.3.0", features = [ "spin_no_std" ] } # TODO: When `std` is set we want this feature off! log = { version = "0.4.8", default_features = false } no-std-compat = { version = "0.4.0", features = [ "alloc" ] } rand = { version = "0.7.2", optional = true } rayon = { version = "1.0.3", optional = true } serde = { version = "1.0", features = ["derive"], optional = true } thiserror = { version = "1.0", optional = true } tiny-keccak = { version = "2.0.1", features = ["keccak"] } tinytemplate = { version = "1.1.0", optional = true } zkp-hash = { version = "0.2.0", path = "../../crypto/hash", default-features = false } zkp-logging-allocator = { version = "0.2.0", path = "../../utils/logging-allocator", optional = true } zkp-macros-decl = { version = "0.2.0", path = "../../utils/macros-decl", default-features = false } zkp-merkle-tree = { version = "0.2.0", path = "../../crypto/merkle-tree", default-features = false } zkp-mmap-vec = { version = "0.2.0", path = "../../utils/mmap-vec", default-features = false } zkp-primefield = { version = "0.2.0", path = "../../algebra/primefield", default-features = false } zkp-u256 = { version = "0.2.0", path = "../../algebra/u256", default-features = false } [dev-dependencies] criterion = "0.3.0" env_logger = "0.7.1" proptest = "0.9.4" rand = "0.7.2" rand_xoshiro = "0.4.0" structopt = "0.3.5" zkp-criterion-utils = { version = "0.2.0", path = "../../utils/criterion-utils" } zkp-elliptic-curve = { version = "0.2.0", path = "../../algebra/elliptic-curve" } zkp-elliptic-curve-crypto = { version = "0.2.0", path = "../../crypto/elliptic-curve-crypto" } zkp-logging-allocator = { version = "0.2.0", path = "../../utils/logging-allocator" } zkp-primefield = { version = "0.2.0", path = "../../algebra/primefield", features = ["proptest"] } zkp-u256 = { version = "0.2.0", path = "../../algebra/u256", features = ["proptest", "proptest-derive"] } [[bench]] name = "benchmark" harness = false [features] default = [ "inline", "prover", "std", ] std = [ "hex", "itertools/use_std", "log/std", "no-std-compat/std", "rayon", "serde", "thiserror", "tinytemplate", "zkp-hash/std", "zkp-macros-decl/std", "zkp-merkle-tree/std", "zkp-mmap-vec/std", "zkp-primefield/std", "zkp-u256/std", ] inline = [ "zkp-primefield/inline", "zkp-u256/inline", ] prover = [ "std", # TODO: Make prove run in no-std wasm. "rand", "zkp-merkle-tree/prover", ] # Allow math in docs [package.metadata.docs.rs] rustdoc-args = ["--html-in-header", ".cargo/katex-header.html"]