[package]
name = "fheanor"
version = "0.11.2"
edition = "2024"

repository = "https://github.com/FeanorTheElf/fheanor"
homepage = "https://github.com/FeanorTheElf/fheanor"
keywords = ["cryptography", "encryption", "fhe", "homomorphic"]
readme = "Readme.md"
description = "A library that provides fast implementations of rings commonly used in homomorphic encryption, built on feanor-math."
license = "MIT"

[lib]
crate-type = ["rlib"]
bench = true

[dependencies]
feanor-math = { version = "3.5.17", features = ["generic_tests", "unstable-enable"] }
feanor-math-hexl = { version = "0.2.6", optional = true }
oorandom = "11.1.3"
serde = { version = "1.0.207", features = ["derive"] }
thread_local = "1.1.8"
rand = "0.9.3"
rand_distr = "0.5.1"
take_mut = "0.2.2"
feanor-mempool = "2.1.0"
tracing = "0.1.41"
serde_json = "1.0.125"
backtrace = "0.3.75"
postcard = { version = "1.1.3", features = ["use-std"] }
feanor-serde = "0.1.5"
tracking-allocator = "0.4.0"
fhe-ir = "0.1.4"
append-only-vec = "0.1.8"

[dev-dependencies]
serde_assert = "0.8.0"
tracing-subscriber = "0.3.20"
tracing-chrome = "0.7.2"
serde_path_to_error = "0.1.17"
feanor-tracing = "1.0.1"

[features]
use_hexl = ["dep:feanor-math-hexl"]
generic_tests = []

[profile.profiling]
inherits = "bench"
debug = true
lto = "fat"
panic = "abort"

[profile.release]
lto = "fat"
panic = "abort"

# to allow running two different tests at the same time (i.e. cargo uses different directory for output executable)
[profile.test2]
inherits = "test"
