[package]
name = "fhe"
description = "Fully Homomorphic Encryption in Rust"
authors.workspace = true
documentation.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
version = "0.1.0"

[lib]
bench = false # Disable default bench (we use criterion)

[features]
tfhe-ntt = ["fhe-math/tfhe-ntt"]
tfhe-ntt-nightly = ["fhe-math/tfhe-ntt-nightly"]

[dependencies]
fhe-math = { version = "=0.1.0", path = "../fhe-math" }
fhe-traits = { version = "=0.1.0", path = "../fhe-traits" }
fhe-util = { version = "=0.1.0", path = "../fhe-util" }

doc-comment.workspace = true
itertools.workspace = true
num-bigint.workspace = true
num-traits.workspace = true
prost.workspace = true
rand.workspace = true
rand_chacha.workspace = true
zeroize.workspace = true
zeroize_derive.workspace = true
ndarray.workspace = true
thiserror.workspace = true
once_cell.workspace = true

[dev-dependencies]
clap.workspace = true
console.workspace = true
criterion.workspace = true
env_logger.workspace = true
indicatif.workspace = true
itertools.workspace = true
log.workspace = true
ndarray.workspace = true
rand.workspace = true

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

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

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

[[example]]
name = "bfv_basic"

[[example]]
name = "bfv_ops"

[[example]]
name = "mulpir"

[[example]]
name = "sealpir"

[[example]]
name = "rgsw"

[[example]]
name = "voting"
