[package] name = "neptune" description = "Poseidon hashing over BLS12-381 for Filecoin." version = "13.0.0" authors = ["porcuquine "] edition = "2021" license = "MIT OR Apache-2.0" repository = "https://github.com/lurk-lab/neptune" rust-version = "1.66.1" [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 } log = { 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.4.0" rand = "0.8.5" rand_xorshift = "0.3.0" serde_json = "1.0.103" sha2 = "0.9" [build-dependencies] blstrs = { workspace = true } ec-gpu = { workspace = true, optional = true } ec-gpu-gen = { workspace = true, optional = true } pasta_curves = { workspace = true, features = ["serde"] } [[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.4.0", default-features = false } bellpepper = { version = "0.4.0", default-features = false } blake2s_simd = "1.0.1" blstrs = { version = "0.7.0" } ff = "0.13.0" generic-array = "0.14.7" pasta_curves = { version = "0.5" } ec-gpu = { version = "0.2.0" } ec-gpu-gen = { version = "0.7.0" } log = "0.4.19" byteorder = "1"