[package]
name = "rln"
version = "0.3.7"
edition = "2021"
license = "MIT OR Apache-2.0"
description = "APIs to manage, compute and verify zkSNARK proofs and RLN primitives"
documentation = "https://github.com/vacp2p/zerokit"
homepage = "https://vac.dev"
repository = "https://github.com/vacp2p/zerokit"

[lib]
crate-type = ["rlib", "staticlib"]
bench = false

# This flag disable cargo doctests, i.e. testing example code-snippets in documentation
doctest = false


[dependencies]
# ZKP Generation
ark-ec = { version = "=0.4.1", default-features = false }
ark-ff = { version = "=0.4.1", default-features = false, features = ["asm"] }
ark-std = { version = "=0.4.0", default-features = false }
ark-bn254 = { version = "=0.4.0" }
ark-groth16 = { version = "=0.4.0", features = [
    "parallel",
], default-features = false }
ark-relations = { version = "=0.4.0", default-features = false, features = [
    "std",
] }
ark-serialize = { version = "=0.4.1", default-features = false }
ark-circom = { version = "=0.1.0", default-features = false, features = [
    "circom-2",
] }

# WASM
wasmer = { version = "=2.3.0", default-features = false }

# error handling
color-eyre = "=0.6.2"
thiserror = "=1.0.39"

# utilities
cfg-if = "=1.0"
num-bigint = { version = "=0.4.3", default-features = false, features = [
    "rand",
] }
num-traits = "=0.2.15"
once_cell = "=1.17.1"
rand = "=0.8.5"
rand_chacha = "=0.3.1"
tiny-keccak = { version = "=2.0.2", features = ["keccak"] }
utils = { package = "zerokit_utils", version = "=0.3.3", path = "../utils/", default-features = false }

# serialization
serde_json = "=1.0.96"
serde = { version = "=1.0.163", features = ["derive"] }

include_dir = "=0.7.3"

[dev-dependencies]
sled = "=0.34.7"
criterion = { version = "=0.4.0", features = ["html_reports"] }

[features]
default = ["parallel", "wasmer/sys-default", "pmtree-ft"]
parallel = [
    "ark-ec/parallel",
    "ark-ff/parallel",
    "ark-std/parallel",
    "ark-groth16/parallel",
    "utils/parallel",
]
wasm = ["wasmer/js", "wasmer/std"]
fullmerkletree = ["default"]

# Note: pmtree feature is still experimental
pmtree-ft = ["utils/pmtree-ft"]

[[bench]]
name = "pmtree_benchmark"
harness = false
