content: [package]
  name = "neptune"
  description = "Poseidon hashing over BLS12-381 for Filecoin."
  version = "13.0.0"
  authors = ["porcuquine <porcuquine@gmail.com>"]
  edition = "2021"
  license = "MIT OR Apache-2.0"
  repository = "https://github.com/lurk-lab/neptune"
  rust-version = "1.71.0"
  
  [dependencies]
  bellpepper = { workspace = true }
  bellpepper-core = { workspace = true }
  blake2s_simd = { workspace = true }
  blstrs = { workspace = true, optional = true }
  byteorder = { workspace = true }
  ec-gpu = { workspace = true, optional = true }
  ec-gpu-gen = { workspace = true, optional = true }
  ff ={ workspace = true }
  generic-array = { workspace = true }
  pasta_curves = { workspace = true, features = ["serde"] }
  serde = { version = "1.0", features = ["derive"] }
  trait-set = "0.3.0"
  abomonation = { version = "0.7.3", optional = true }
  abomonation_derive = { version = "0.1.0", package = "abomonation_derive_ng", optional = true }
  
  [dev-dependencies]
  bincode = "1.3.3"
  blstrs = { workspace = true }
  criterion = "0.5.1"
  rand = "0.8.5"
  rand_xorshift = "0.3.0"
  serde_json = "1.0.103"
  sha2 = "0.10"
  
  [build-dependencies]
  blstrs = { workspace = true }
  ec-gpu = { workspace = true, optional = true }
  ec-gpu-gen = { workspace = true, optional = true }
  pasta_curves = { workspace = true, features = ["serde"] }
  
  [package.metadata.cargo-udeps.ignore]
  normal = ["blstrs", "pasta_curves"]
  development = ["blstrs", "pasta_curves"]
  build = ["blstrs", "pasta_curves"]
  
  [[bench]]
  name = "hash"
  harness = false
  
  [[bench]]
  name = "synthesis"
  harness = false
  
  [profile.bench]
  incremental = false
  codegen-units = 1
  
  [features]
  default = ["bls", "pasta"]
  cuda = ["ec-gpu-gen/cuda", "ec-gpu"]
  opencl = ["ec-gpu-gen/opencl", "ec-gpu"]
  # The supported arities for Poseidon running on the GPU are specified at compile-time.
  arity2 = []
  arity4 = []
  arity8 = []
  arity11 = []
  arity16 = []
  arity24 = []
  arity36 = []
  # With this feature set, also the strengthened version of the kernel will be compiled.
  strengthened = []
  # The supported fields for Poseidon running on the GPU are specified at compile-time.
  bls = ["blstrs/gpu"]
  pasta = ["pasta_curves/gpu"]
  portable = ["blstrs/portable"]
  # Unsafe Abomonation-based serialization
  abomonation = ["dep:abomonation", "dep:abomonation_derive"]
  
  [workspace]
  resolver = "2"
  members = [
    "gbench",
  ]
  
  # Dependencies that should be kept in sync through the whole workspace
  [workspace.dependencies]
  bellpepper-core = { version = "0.2.0", default-features = false }
  bellpepper = { version = "0.2.0", default-features = false }
  blake2s_simd = "1.0.1"
  blstrs = { version = "0.7.0" }
  ff = "0.13.0"
  generic-array = "1.0"
  pasta_curves = { version = "0.5" }
  ec-gpu = { version = "0.2.0" }
  ec-gpu-gen = { version = "0.7.0" }
  log = "0.4.19"
  byteorder = "1"
  
  [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
  